【问题标题】:Error using load command to open .mat file in Matlab在 Matlab 中使用加载命令打开 .mat 文件时出错
【发布时间】: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


【解决方案1】:

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

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

根据需要随意定制。

【讨论】:

    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多