Filter löschen
Filter löschen

concatenate each element of two arrays

24 Ansichten (letzte 30 Tage)
Mohit
Mohit am 1 Feb. 2014
Kommentiert: Azzi Abdelmalek am 3 Feb. 2014
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
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
Mohit
Mohit am 3 Feb. 2014
Thanks Azzi!
Jos (10584)
Jos (10584) am 3 Feb. 2014
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
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.

Jos (10584)
Jos (10584) am 3 Feb. 2014
A=['a' 'b' 'c']
B = ['1' '2']
C = allcomb(A,B)

Wayne King
Wayne King am 1 Feb. 2014
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

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by