我正在编写我的第一个Matlab脚本,尝试使用dir()时出错.这是脚本:
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(strLocation)
Run Code Online (Sandbox Code Playgroud)
错误是:
Run Code Online (Sandbox Code Playgroud)Error using dir Function is not defined for 'string' inputs.
我究竟做错了什么?
首先应该注意的是,matlab 中的char向量和a string是不同的东西.该string数据类型是最近推出的(在R2016b,我认为).以前的版本不支持string类型,仅支持char向量.
由于string引入了数据类型,许多用于接受char矢量输入的内置函数现在也可以接受string输入.但显然,这正在逐步纳入职能部门.因此,即使您的Matlab版本支持string数据类型,您也可以找到一些仍然只能将char矢量作为输入的函数.dir在您的版本中似乎就是这种情况.dir根据文档,在R2018b中支持两种类型的输入.
因此,您需要将输入定义dir为char矢量.为此,您使用'而不是":
strLocation = 'C:\Users\myname\Documents\MATLAB';
listing = dir(strLocation)
Run Code Online (Sandbox Code Playgroud)
或者,如果您必须有一个字符串,请在将其char传递给之前将其转换为向量dir:
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(char(strLocation))
Run Code Online (Sandbox Code Playgroud)