从多个结构向数组添加变量

时间:2014-11-18 09:01:43

标签: arrays matlab

我有一个特定的问题:

我有一个包含120个变量的结构,每个变量都有不同的行数(但是固定的列数= 7)

我需要从所有数组中创建前两列的新数组。

我遇到的问题是在第一个数字下方附加新的数字。

如果没有eval,有没有办法做到这一点?

我正在尝试这样的事情:

varr = fieldnames(sctData);

for ii = 1:size(sctData,1)
   m = 1;
   for m = m:m+eval(['size(sctData.' varr{ii} ',1)'])

       eval(['sctData2(m,1) = sctData.' varr{ii} '(m,1);']);
       eval(['sctData2(m,2) = sctData.' varr{ii} '(m,2);']);

   end

end

但是,当然,这会重写旧的变量。我真的不想使用eval!

欢迎任何帮助。 :) 谢谢!

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,这应该有效:

varr = struct2cell(sctData);

newarray = [];

for ii = 1:length(varr)
    temp = varr{ii};
    newarray = [newarray; temp(:,1:2)];
end