我正在编写我的第一个Matlab脚本,在使用dir()时出错。这是一个脚本:
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(strLocation)错误是:
未为“string”输入定义使用dir函数的错误。
我做错了什么?
发布于 2018-12-16 20:25:17
首先要指出的是,在Matlab中,char 向量和string是不同的事物。string数据类型是最近引入的(我认为是在R2016b中)。以前的版本不支持string类型,只支持char向量。
自从引入string数据类型以来,许多用于接受char向量输入的内置函数现在也可以接受string输入。但这显然是逐渐将合并到函数中。因此,即使您的Matlab版本支持string数据类型,您也可能会发现一些函数仍然只能以char向量作为输入。在您的版本中,这似乎是dir的情况。在R2018b中,根据文档,dir支持两种类型的输入。
因此,您需要将dir的输入定义为char向量。为此,您使用'而不是"
strLocation = 'C:\Users\myname\Documents\MATLAB';
listing = dir(strLocation)或者,如果必须有字符串,则在将其传递给char向量之前,将其转换为dir向量。
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(char(strLocation))发布于 2018-12-16 20:25:38
由于MATLAB R2017a双引号表示字符串,单引号表示字符向量。
dir函数需要一个char向量,所以您应该用单引号调用它,
strLocation = 'C:\Users\myname\Documents\MATLAB';
listing = dir(strLocation)https://stackoverflow.com/questions/53806116
复制相似问题