2017-09-26 70 views
0
function myScript() 

mat_files = dir('*.mat'); 
profiles = []; 
sub_ints = {}; 
sub_bands = {}; 
for i = 1: numel(mat_files) 
file_name = mat_files(i).name; 
fprintf('processing %s\n', file_name); 
data = load(file_name); 
profiles = [profiles; data.profile]; 
sub_ints = [sub_ints; data.subints]; 
sub_bands = [sub_bands; data.subbands]; 
end 

save('alldata.mat', 'profiles', 'sub_ints', 'sub_bands', '-v7.3'); 
end 

但有以下错误 引用到不存在的字段“配置文件”。我尝试访问matlab中的结构数组

myScript(第13行)中的错误 profiles = cell2mat((profiles; data.profile}); 轮廓是1个* 64双sub_ints是18个* 64双sub_bands是16 * 64双

+2

如果你输入'disp(data)',你能发布你得到的结果吗? – Zep

+0

未定义函数或变量“数据”。 错误myScript的(线12) DISP(数据)=负载(FILE_NAME); –

+0

对不起,我的意思是当你运行你的脚本键入'DISP(数据)'在命令窗口,或执行'数据=负载(FILE_NAME)之后;' – Zep

回答

0

检查所定义sub_intssub_bands时创建的数组的类型。这些是单元阵列,所以你需要以不同的方式使用它们。您可能希望做同样的profiles

for i = 1: numel(mat_files) 
    file_name = mat_files(i).name; 
    fprintf('processing %s\n', file_name); 
    data = load(file_name); 
    profiles = [profiles; data.profile]; 
    sub_ints{i} = data.subints; 
    sub_bands{i} = data.subbands; 
end 

sub_ints = cell2mat(sub_ints); 
sub_bands = cell2mat(sub_bands); 
+0

这是同样的错误 –

+0

然后,你需要检查的内容/类型的数据和data.profile,像Zep建议的那样。但是,无论如何,您需要实施我的建议。 – 10a