首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未为“string”输入定义使用dir函数的错误

问未为“string”输入定义使用dir函数的错误
EN

Stack Overflow用户
提问于 2018-12-16 20:17:54
回答 2查看 1.1K关注 0票数 2

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

代码语言:javascript
复制
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(strLocation)

错误是:

未为“string”输入定义使用dir函数的错误。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-16 20:25:17

首先要指出的是,在Matlab中,char 向量和string是不同的事物。string数据类型是最近引入的(我认为是在R2016b中)。以前的版本不支持string类型,只支持char向量。

自从引入string数据类型以来,许多用于接受char向量输入的内置函数现在也可以接受string输入。但这显然是逐渐将合并到函数中。因此,即使您的Matlab版本支持string数据类型,您也可能会发现一些函数仍然只能以char向量作为输入。在您的版本中,这似乎是dir的情况。在R2018b中,根据文档,dir支持两种类型的输入。

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

代码语言:javascript
复制
strLocation = 'C:\Users\myname\Documents\MATLAB';
listing = dir(strLocation)

或者,如果必须有字符串,则在将其传递给char向量之前,将其转换为dir向量。

代码语言:javascript
复制
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(char(strLocation))
票数 8
EN

Stack Overflow用户

发布于 2018-12-16 20:25:38

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

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

代码语言:javascript
复制
strLocation = 'C:\Users\myname\Documents\MATLAB';
listing = dir(strLocation)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53806116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档