concatenate structs in a loop
5 ビュー (過去 30 日間)
古いコメントを表示
I have a 1x7 struct, each containing the same number of rows but differing number of columns. I want to concatenate each struct into a new matrix but was wondering if I can do this in a loop?
For example, A is a 1x7 struct containing data B. I essentially want to do:
cat(2,A(1,1).B, A(1,2).B, A(1,3).B, A(1,4).B, A(1,5).B, A(1,6).B, A(1,7).B)
but in a loop. Is this possible? Thanks in advance.
採用された回答
Matt Fig
2011 年 5 月 6 日
A 1-by-n structure, where the data in each n has the same number of rows but different number of columns:
A(1,1).B = [5.5 4.5;5.5 4.5];
A(1,2).B = [6.3 4.3 3.3;6.3 4.3 3.3];
A(1,3).B = [7.1 2.1 3.1 4.1;7.1 2.1 3.1 4.1];
Here is one way to do it in a loop:
G = cell(1,length(A));
for ii = 1:length(A)
G{ii} = A(ii).B;
end
G = [G{:}];
Or, simply (as Walter also pointed out):
G2 = cat(2,A(:).B); % isequal(G,G2)==1
0 件のコメント
その他の回答 (1 件)
Paulo Silva
2011 年 5 月 6 日
for n=1:size(A,1)
s{n}=cat(2,A(n,1).B, A(n,2).B, A(n,3).B, A(n,4).B, A(n,5).B, A(n,6).B, A(n,7).B);
end
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!