通过 Windows Parallels (Windows 7) 运行 R2012a (7.14.0.739),出现此错误。
>>folder_name=uigetdir;
>>cd folder_name;
Error using cd
Cannot CD to folder_name (Name is nonexistent or not a directory).
奇怪的是,如果我将“folder_name”结果复制并粘贴到 Matlab GUI 的文件夹字段中,我可以手动设置工作目录路径。
启动Matlab没有问题,也没有定制startup.m或pathdef.m。 这个问题的根源是什么? 什么是解决方法? 谢谢!
最佳答案
错误原因
您正在以其“命令形式”使用 cd
。因此,Matlab 将 cd folder_name
理解为 cd-ing 到名为“folder_name”的文件夹。在“命令形式”中,matlab 不会评估变量名称以查看存储在变量 folder_name
中的字符串是什么。
解决方案
您需要在其“函数形式”中使用cd
:
cd( folder_name )
这样 matlab 就知道 folder_name
是一个变量名,而不是文件夹的实际名称。
为了更好地理解,请考虑以下之间的区别:
>> cd( folder_name )
和
>> cd( 'folder_name' )
cd( 'folder_name' ) 是等同于“命令形式”的“函数形式”
cd folder_name`。
关于matlab - 当对 uigetdir 返回的值使用 cd 函数时,名称不存在或不是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565885/