How to combine two cell arrays to corresponding elements?

13 vues (au cours des 30 derniers jours)
Jacky Jo
Jacky Jo le 30 Oct 2015
Réponse apportée : Adam le 30 Oct 2015
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]

Réponse acceptée

Adam
Adam le 30 Oct 2015
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.

Plus de réponses (0)

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by