Borrar filtros
Borrar filtros

concatenate each element of two arrays

16 visualizaciones (últimos 30 días)
Mohit
Mohit el 1 de Feb. de 2014
Comentada: Azzi Abdelmalek el 3 de Feb. de 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

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 1 de Feb. de 2014
Editada: Azzi Abdelmalek el 1 de Feb. de 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 comentarios
Mohit
Mohit el 3 de Feb. de 2014
Thanks Azzi!
Jos (10584)
Jos (10584) el 3 de Feb. de 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(:)]

Iniciar sesión para comentar.

Más respuestas (3)

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

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

Iniciar sesión para comentar.

Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by