How to concatenate elements in cell array to a vector?
22 ビュー (過去 30 日間)
古いコメントを表示
I have cell arrays with different size & I want to concatenate all the elements in the cell to become a vector. How to do that?
This is my code:
% Create cell arrays
Q= [23 34; 44 55; 56 71; 63 49; 71 30];
B= [12 13; 10 99];
C{1}=Q;
C{2}=B;
% Convert cells to vector
nCol = cellfun('size', C, 1);
nRow = numel(C);
No_of_elements = cellfun(@numel, C);
P = No_of_elements(1,1) + No_of_elements(1,2);
Output = NaN(1,P); % Size vector
for iC = 1:numel(C)
idx = (iC - 1) + 1;
Output(1:P(iC), idx:idx+1) = C{iC};
end
I want the final output to become, Output = [23 34 44 55 56 71 63 49 71 30 12 13 10 99]
0 件のコメント
採用された回答
Paul
2022 年 8 月 3 日
Q= [23 34; 44 55; 56 71; 63 49; 71 30];
B= [12 13; 10 99];
C{1}=Q;
C{2}=B;
Output = reshape(vertcat(C{:}).',1,[])
3 件のコメント
Paul
2022 年 8 月 3 日
編集済み: Paul
2022 年 8 月 3 日
Q and B are not cell arrays. If you have them by themselves then
Q = [23 34 10; 44 55 45; 56 71 32; 63 49 55; 71 30 11];
B = [12 13; 10 99];
output = horzcat(reshape(Q.',1,[]),reshape(B.',1,[]))
If they really are elements of a cell array
C{1} = Q;
C{2} = B;
output = horzcat(reshape(C{1}.',1,[]),reshape(C{2}.',1,[]))
Probably other solutions as well.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!