如何從Matlab結構數組的每個元素中提取特定的字段?如何切片結構數組?
>> clear x
>> x(1).a = 6;
>> x(2).a = 7;
我想包含6和7既不x(:).a
也不x.a
做我想做的數組。
>> x(:).a
ans =
6
ans =
7
如何從Matlab結構數組的每個元素中提取特定的字段?如何切片結構數組?
>> clear x
>> x(1).a = 6;
>> x(2).a = 7;
我想包含6和7既不x(:).a
也不x.a
做我想做的數組。
>> x(:).a
ans =
6
ans =
7
沒問題 - 只需使用:
arr = [x.a];
將Concat的一切你所需要的值。 如果你有一個更復雜的數據,你可以使用大護腕:
b(1).x = 'John';
b(2).x = 'Doe';
arr = {b.x};
不幸的是,我幾乎可以肯定,MATLAB沒有很好的方式來做你想做的事情。你將不得不使用for循環來構造一個新的數組,否則返回並重新設計你的數據結構。例如,你可能能夠使用數組結構而不是數組結構。
對於多維數組,你需要
reshape([x.a], size(x))