假设我得到了一个数组结构,例如:

s = 

foo: [3x3 double]
bar: [3x1 double]

有没有一种简单的方法可以提取结构名称与s相同且每个字段由s相同字段的s ix行填充s 我可以假设每个字段具有相同的行数。 鉴于以上情况,我可以做

ix = 1;
s1.foo = s.foo(ix, :);
s1.bar = s.bar(ix, :);

但是,如果s具有多个字段,则变得笨拙。 是否有一个函数可以做等价的la s1 = extractstruct(s, ix)

===============>>#1 票数: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]

  ask by dantswain translate from so

未解决问题?本站智能推荐: