How to concatenate cells?
3 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have 2 cell matrices like <1*1150cell> one has 1000*2 matrix in each cell: xxp the other has 1000*4 matrix in each cell: xxq
I would like to have a one cell matrices of <1*1150cell> with each cell having 1000*6 matrix from the concatenating both matrices.
I have tried different approaches, and tried resorting with loops but was not able to do it.
for i=1:1150
xx{i}={[xxp{i} xxq{i}]};
end
This does not work there are other longer ways to go apparently. But provides an idea of the problem.
0 件のコメント
回答 (3 件)
Honglei Chen
2013 年 3 月 12 日
I think you just need to do
for i=1:1150
xx{i}=[xxp{i}; xxq{i}];
end
Alternatively, you can do
xx = cellfun(@(x,y)[x;y],xxp,xxq,'UniformOutput',false);
Konrad Malkowski
2013 年 3 月 12 日
Does this do what you are looking for?
A = repmat([1,2,3,4], 1000, 1);
B = repmat([5,6], 1000, 1);
C = {A};
D = {B};
CC = repmat(C, 1, 1115);
DD = repmat(D, 1, 1115);
XX = cellfun(@horzcat, CC, DD, 'UniformOutput',false)
Walter Roberson
2013 年 3 月 12 日
One way would be
mat2cell( [cell2mat(xxp.'), cell2mat(xxq.')], ones(1,1150), 6) .'
But this uses for loops internally.
参考
カテゴリ
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!