我尝试在matlab中从struct访问数组

时间:2017-09-26 10:18:24

标签: matlab

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

但是有下面的错误 引用不存在的字段'profile'。

  myp中的

错误(第13行)   profiles = cell2mat({profiles; data.profile});   profile是1 * 64 double sub_ints是18 * 64 double sub_bands是16 * 64 double

1 个答案:

答案 0 :(得分: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);