2017-07-18 47 views
-1

光盘目录假设我有一个目录如何定义自定义目录,这样我可以在Matlab

cur = 'C:\Windows\debug'; 

然后我就可以执行cd(cur)。但我不习惯使用函数格式。我希望我可以使用cd cur直接更改当前文件夹。这在MATLAB中可能吗?

编辑:因为我发现了以下错误:

>> cur = 'C:\Windows\debug'; 
>> cd cur 
Error using cd 
Cannot CD to cur (Name is nonexistant or not a directory). 
+0

要“cd”到包含在变量中的目录,正如您尝试的那样,您必须使用功能表单。在你的例子中,MATLAB正在寻找名为'cur'的目录。 –

+0

@PhilGoddard当然我知道,但我仍然想这样做。是否有任何解决方法? – yode

+2

引用“命令与函数语法”的文档:当函数输入是变量时,必须使用函数语法将值传递给函数。命令语法总是将输入作为文字文本传递,并且不能传递变量值。我不相信有一个解决方法。 –

回答

2

这里是documentation for command syntax,并与更多的例子在command vs function syntax一个文档的文章。

从文档,

When calling a function using command syntax, MATLAB passes the arguments as character vectors.

所以,不,你不能传递一个变量名像cur,因为cur将得到视为特征向量,你会做一样cd('cur')

你可以做任何

cd(cur) 
% or 
cd 'C:\Windows\debug' 
% or (as long as no whitespace in directory path) 
cd C:\Windows\debug 

如果你不喜欢学习语法,解决办法是选择另一种语言......使用括号是在MATLAB标准的做法,因为你也不能得到输出值从使用命令语法时的功能。

而且从scripts and functions documentation你可以看到消息

Caution: While the unquoted command syntax is convenient, in some cases it can be used incorrectly without causing MATLAB to generate an error.

所以这种方法是使用MATLAB时气馁。

+0

[That works](http://i.stack.imgur.com/e4uyC.png)给你? – yode

+0

我非常怀疑[该命令](http://i.stack.imgur.com/3Nq2D.png)可以继续工作,而'cd(cur)'在这里正常工作。 – yode

+0

我已经更新了我的回答 – Wolfie

相关问题