concatenate each element of two arrays

15 views (last 30 days)
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

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 1 Feb 2014
Edited: Azzi Abdelmalek on 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 Comments
Jos (10584)
Jos (10584) on 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(:)]

Sign in to comment.

More Answers (3)

Jan
Jan on 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) on 3 Feb 2014
A=['a' 'b' 'c']
B = ['1' '2']
C = allcomb(A,B)

Wayne King
Wayne King on 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 Comment
Mohit
Mohit on 3 Feb 2014
Thanks, it will give me 3 elements in result matrix while I wanted 6.

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!