How to combine two cell arrays to corresponding elements?

13 ビュー (過去 30 日間)
Jacky Jo
Jacky Jo 2015 年 10 月 30 日
回答済み: Adam 2015 年 10 月 30 日
I would like to combine the two cell values each has [1x1] elements. After combining them, I would like to get [1x2] elements in each cell. Please help me. Example:
A = [1, 2, 3];
B = [1, 2, 3, 4];
A_aug = num2cell(repmat(A, 4, 1)');
B_aug = num2cell(repmat(B, 3, 1));
C = cat(3, A_aug, B_aug)
C(:,:,1) =
[1] [1] [1] [1]
[2] [2] [2] [2]
[3] [3] [3] [3]
C(:,:,2) =
[1] [2] [3] [4]
[1] [2] [3] [4]
[1] [2] [3] [4]
Instead of above result I would like to get as follows:
C =
[1 1] [1 2] [1 3] [1 4]
[2 1] [2 2] [2 3] [2 4]
[3 1] [3 2] [3 3] [3 4]

採用された回答

Adam
Adam 2015 年 10 月 30 日
C = cellfun( @(x,y) [x,y], A_aug, B_aug, 'UniformOutput', false )
should give the result you want. You can also do the equivalent for loop which is usually faster, but I prefer the cellfun version personally if speed is not an issue.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCell Arrays についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by