【发布时间】:2011-04-29 18:02:44
【问题描述】:
这是我的代码的一部分,我在其中输入 .mat 文件的名称,该文件与我的代码位于同一文件夹中。但是它不识别文件名并给出错误:
"??? 使用 ==> 加载时出错
无法读取文件 'q.mat':没有这样的文件或目录。"
q_type=input('Do you want to use q from "A", "B" or from a saved .mat file? Enter the exact name: ','s');
q_type=mat2str([q_type'.mat'])
load(q_type)
但是,如果我如下直接在命令窗口中使用加载命令,那么它不会出错并加载文件:
load('q_A.mat')
为什么会这样?
【问题讨论】:
-
移除 MAT2STR 函数调用
-
您使用的是没有路径的文件名,如果它不在 MATLAB 路径中,则 MATLAB 无法找到它。使用函数 fullfile()。
-
@Harpreet:不要使用最后两行,而是使用:
load( [q_MethodType '.mat'] )。我还在下面发布了一个更优雅的解决方案... -
我还是不明白为什么要使用mat2str()?对于字符,它应该表现得像一个恒等函数 x=f(x)。当以编程方式使用文件名时,您也不需要在文件名中加上引号。字符串用引号显示,但不将它们作为字符串数组的附加元素。没有 mat2str 得到的错误真的很奇怪。
标签: matlab file-io mat-file matlab-load