假设我有一个数组结构,例如:
s =
foo: [3x3 double]
bar: [3x1 double]
是否有一种简单的方法可以提取具有与s
相同的字段名称的结构,并且每个字段都填充在ix
中相同字段的s
行?我可以假设每个字段都有相同的行数。鉴于以上情况,我可以做到
ix = 1;
s1.foo = s.foo(ix, :);
s1.bar = s.bar(ix, :);
但如果s有多个字段,那就太笨重了。是否有一个函数可以做等效的la s1 = extractstruct(s, ix)
?
答案 0 :(得分:1)
它不像s1 = extractstruct(s, ix)
那么短,但我会这样做:
s.foo = rand(3);
s.bar = rand(1,3);
xi=1;
s2=reshape([fieldnames(s)'; cellfun(@(x) x(xi,:),struct2cell(s)','UniformOutput',0)],1,[]);
s2=struct(s2{:})
s2 =
foo: [0.8147 0.9134 0.2785]
bar: [0.7922 0.9595 0.6557]