如何从Matlab结构数组的每个元素中提取特定字段?
>> clear x
>> x(1).a = 6;
>> x(2).a = 7;
我想要一个包含6和7的数组。x(:).a
和x.a
都不能做我想要的。
>> x(:).a
ans =
6
ans =
7
答案 0 :(得分:9)
没问题 - 只需使用:
arr = [x.a];
它将连接您需要的所有值。 如果您有更复杂的数据,可以使用大括号:
b(1).x = 'John';
b(2).x = 'Doe';
arr = {b.x};
答案 1 :(得分:0)
可悲的是,我几乎可以肯定MATLAB没有办法做你想做的事。您必须使用for循环来构造新数组,否则返回并重新设计数据结构。例如,您可以使用数组结构而不是结构数组。
答案 2 :(得分:0)
对于多维数组,您需要
reshape([x.a], size(x))
答案 3 :(得分:0)