在Matlab中使用load命令打开.mat文件时出错

在Matlab中使用load命令打开.mat文件时出错,matlab,file-io,mat-file,matlab-load,Matlab,File Io,Mat File,Matlab Load,这是我的代码的一部分,我在其中输入.mat文件的名称,该文件与我的代码位于同一文件夹中。但是,它没有标识文件名,并给出一个错误: “??”使用==>load时出错 无法读取文件“q.mat”:没有此类文件或目录 但是,如果我在命令窗口中直接使用load命令,如下所示,则不会出现错误并加载文件: load('q_A.mat') 为什么会这样?下面是一个使用模式对话框的更为用户友好的解决方案: [fileName pathName] = uigetfile({'*.mat' 'MAT-files (

这是我的代码的一部分,我在其中输入.mat文件的名称,该文件与我的代码位于同一文件夹中。但是,它没有标识文件名,并给出一个错误:

“??”使用==>load时出错

无法读取文件“q.mat”:没有此类文件或目录

但是,如果我在命令窗口中直接使用load命令,如下所示,则不会出现错误并加载文件:

load('q_A.mat')


为什么会这样?

下面是一个使用模式对话框的更为用户友好的解决方案:

[fileName pathName] = uigetfile({'*.mat' 'MAT-files (*.mat)'}, 'Load Data', '.');
if pathName == 0, error('No file selected'), end
load( fullfile(pathName,fileName) )

您可以根据需要对其进行自定义。

下面是一个使用模式对话框的更为用户友好的解决方案:

[fileName pathName] = uigetfile({'*.mat' 'MAT-files (*.mat)'}, 'Load Data', '.');
if pathName == 0, error('No file selected'), end
load( fullfile(pathName,fileName) )

您可以根据需要对其进行自定义。

删除MAT2STR函数调用如果您使用的文件名没有其路径,如果它不在MATLAB路径中,则MATLAB无法找到它。使用函数fullfile()。@Harpreet:而不是最后两行,使用:
load([q_MethodType.mat'])
。我还在下面发布了一个更优雅的解决方案……我仍然不明白为什么要使用mat2str()?对于字符,它的行为应该类似于标识函数x=f(x)。当以编程方式使用文件名时,您也不需要在文件名中加引号。字符串以引号显示,但不作为字符串数组的附加元素。没有mat2str时出现的错误非常奇怪。删除mat2str函数调用如果您使用的文件名没有路径,如果它不在MATLAB路径中,则MATLAB无法找到它。使用函数fullfile()。@Harpreet:而不是最后两行,使用:
load([q_MethodType.mat'])
。我还在下面发布了一个更优雅的解决方案……我仍然不明白为什么要使用mat2str()?对于字符,它的行为应该类似于标识函数x=f(x)。当以编程方式使用文件名时,您也不需要在文件名中加引号。字符串以引号显示,但不作为字符串数组的附加元素。没有mat2str时出现的错误非常奇怪。