I have two arrays, can you please help me how can I concatenate each element of both arrays.
e.g. A=['a' 'b' 'c'] B = ['1' '2']
I want ['a1' 'a2' 'b1' 'b2' 'c1' 'c2']
Thanks

 Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 1 Feb. 2014
Bearbeitet: Azzi Abdelmalek am 1 Feb. 2014

3 Stimmen

A=['a' 'b' 'c'];
B = ['1' '2'];
[ii,jj]=ndgrid(1:numel(A),1:numel(B));
out=arrayfun(@(x,y) [A(y) B(x)],jj(:),ii(:),'un',0);
out=sort(out)

3 Kommentare

Wayne King
Wayne King am 1 Feb. 2014
+1 that's neat Azzi
Mohit
Mohit am 3 Feb. 2014
Thanks Azzi!
No need for arrayfun to concatenate, or using sort when you re-arrange the inputs and outputs to/from ndgrid:
[bb,aa] = ndgrid(B,A) ;
C = [aa(:) bb(:)]

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Jan
Jan am 1 Feb. 2014

1 Stimme

A = {'a' 'b' 'c'};
B = {'1' '2'};
C = strcat(repmat(A, 2, 1), repmat(B', 1, 3))
Notice that A and B are cell strings, not char vectors.
Wayne King
Wayne King am 1 Feb. 2014

0 Stimmen

Make A and B cell arrays of strings, but B has to be the same length as A so you'll have to repeat the 2
A = {'a','b','c'};
B = {'1','2','2'};
strcat(A,B)

1 Kommentar

Mohit
Mohit am 3 Feb. 2014
Thanks, it will give me 3 elements in result matrix while I wanted 6.

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by