importdata命令Matlab

时间:2014-06-03 11:46:14

标签: matlab importerror

我知道这应该是一个非常简单的任务,但我无法使用importdata命令。我拥有的是这个

>> FILENAMES{j}
ans =
'L1S11_0_0.mat'

>> importdata(FILENAMES{j})
??? Error using ==> importdata at 136
Unable to open file.

该文件存在,因为当我以这种方式使用命令时

>> importdata('L1S11_0_0.mat')
ans = 
           cycles: 0
             load: 0
          comment: 'Baseline'
        condition: 'Baseline'
        path_data: [1x252 struct]
  straingage_data: [1x1 struct]
        XRay_data: [1x1 struct]

效果很好。

我有+100个文件要导入,我不能每次使用每个importdata命令手动编写名称。

你能说我能做错什么吗?

顺便说一下:我正在使用Matlab R2010a

由于

因此,在我使用的代码中添加更多内容,我填充FILENAMES变量的方式是

C{1,i} = textscan(fid1, '%s %s %s %s %s %s %s %s %s %s',1,'delimiter',';');
FILENAMES=[];
FILENAMES=[FILENAMES;C{1,i}{1,7}];
%Successively reads the rows until it find a row without a Data File
%(Column 7)
while isempty(C{1,i}{1,7})== false
i=i+1;
C{1,i} = textscan(fid1, '%s %s %s %s %s %s %s %s %s %s',1,'delimiter',';');
FILENAMES=[FILENAMES;C{1,i}{1,7}];
end

我已经多次检查过,文件名中没有拼写错误

2 个答案:

答案 0 :(得分:0)

最有可能的错误是请求的FILENAME{j}在字符串中包含单引号。许多文件系统的文件名中允许使用单引号,因此请求的文件名被视为有效并尝试打开。当然,名为L1S11_0_0.mat的文件与名为'L1S11_0_0.mat'的文件不同,因此出错。

测试这个的简单方法是在Matlab提示符下:

>> FILENAMES{j}

ans =

'L1S11_0_0.mat'

>> FILENAMES{j} = 'L1S11_0_0.mat'; FILENAMES{j}

ans =

L1S11_0_0.mat

稍后编辑:

在导入之前从文件名中删除所有单引号的简单方法是:

>> importdata(FILENAMES{j}(FILENAMES{j} ~= ''''))

答案 1 :(得分:0)

你试过了吗?

f=load('L1S11_0_0.mat');

而不是:

importdata('L1S11_0_0.mat');