我知道这应该是一个非常简单的任务,但我无法使用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
我已经多次检查过,文件名中没有拼写错误
答案 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');