S.a=rand(100,3)
S.b=rand(100,3)
S.c=rand(100,3)
S.d=rand(100,3)
K.a=[ ]
K.b=[ ]
K.c=[ ]
K.d=[ ]
for i=1:numel(S)
if rand<0.8 % condition
K(i,:)=S(i,:) % How this assignment can be made
end
end
如何提取结构中所有字段的行并将其存储到另一个结构中。
答案 0 :(得分:1)
从您的解释中我不能完全确定这是否是您想要的。下面的代码会将S中的字段仅复制到<0.8
的行中,复制到K中S.a=rand(100,3);
S.b=rand(100,3);
S.c=rand(100,3);
S.d=rand(100,3);
K = [];
for field = ['a', 'b', 'c', 'd']
I = rand(length(S.(field)), 1) < 0.8;
K.(field) = S.(field)(I,:);
end