我有一个特定的问题:
我有一个包含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!
欢迎任何帮助。 :) 谢谢!
答案 0 :(得分:1)
如果我理解你的问题,这应该有效:
varr = struct2cell(sctData);
newarray = [];
for ii = 1:length(varr)
temp = varr{ii};
newarray = [newarray; temp(:,1:2)];
end