element wise concatenation of square matrices

1 visualización (últimos 30 días)
zozo
zozo el 12 de Feb. de 2013
Hi, I have the following two square matrices:
A=
17 24 1
23 65 7
4 6 13
B=
18 27 35
2 5 8
4 16 11
I want to concatenate the elements of matrices A and B to form a cell C such that:
C= <17,18> <24,27> <1,35>
<23,2> <65,5> <7,8>
<4,4> <6,16> <13,11>
Please help. (I want to avoid using for loop)

Respuestas (4)

Azzi Abdelmalek
Azzi Abdelmalek el 12 de Feb. de 2013
Editada: Azzi Abdelmalek el 12 de Feb. de 2013
n=numel(A)
out=arrayfun(@(x) [A(x) B(x)],1:n,'un',0)
  5 comentarios
zozo
zozo el 12 de Feb. de 2013
Editada: zozo el 12 de Feb. de 2013
Yes..Like
17 18 24 27 1 35
23 2 65 5 7 8
4 4 6 16 13 11
Azzi Abdelmalek
Azzi Abdelmalek el 12 de Feb. de 2013
Ok, what about
out=arrayfun(@(x,y) num2str([x y]),A,B,'un',0)

Iniciar sesión para comentar.


Thorsten
Thorsten el 12 de Feb. de 2013
Editada: Thorsten el 12 de Feb. de 2013
Like this?
C = arrayfun(@(x) ['<' num2str(A(x)) ',' num2str(B(x)) '>'], 1:numel(A), 'un', 0);
C = reshape(C, [3 3]);

Sean de Wolski
Sean de Wolski el 12 de Feb. de 2013
cellfun(@squeeze,num2cell(cat(3,A,B),3),'Uni',false)

zozo
zozo el 12 de Feb. de 2013
This is what I wanted.
A=magic(3);
B=magic(3);
C = arrayfun(@(x) [num2str(A(x)) ' ' num2str(B(x))],1:numel(A), 'un', 0);
Z=reshape(C,3,3)
Thanks for your help! Azzi, Thorsten, Sean. :-)
  2 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 12 de Feb. de 2013
out=arrayfun(@(x,y) num2str([x y]),A,B,'un',0)
zozo
zozo el 12 de Feb. de 2013
Thanks Azzi !!

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by