我正在编写我的第一个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)