使用目录时出错 未为'string'输入定义函数



我正在编写我的第一个Matlab脚本,在尝试使用dir((时出错。这是脚本:

strLocation = "C:UsersmynameDocumentsMATLAB";
listing = dir(strLocation)

错误为:

Error using dir
Function is not defined for 'string' inputs.

我做错了什么?

首先应该注意的是,char向量string在Matlab中是不同的东西。string数据类型是最近引入的(我认为是在R2016b中(。以前的版本不支持string类型,仅支持char矢量。

由于引入了string数据类型,许多用于接受char矢量输入的内置函数现在也可以接受string输入。但显然,这正被逐渐纳入功能中。因此,即使您的Matlab版本支持string数据类型,您可能会发现一些函数仍然只能将char向量作为输入。在您的版本中,dir似乎就是这样。根据文档,在R2018b中,dir支持这两种类型的输入。

因此,您需要将dir的输入定义为char向量。为此,您使用'而不是":

strLocation = 'C:UsersmynameDocumentsMATLAB';
listing = dir(strLocation)

或者,如果必须有一个字符串,在将其传递给dir:之前,将其转换为char矢量

strLocation = "C:UsersmynameDocumentsMATLAB";
listing = dir(char(strLocation))

由于MATLAB R2017,双引号表示字符串,单引号表示字符向量。

dir函数需要一个char向量,所以你应该用单引号来调用它

strLocation = 'C:UsersmynameDocumentsMATLAB';
listing = dir(strLocation)

相关内容

  • 没有找到相关文章