Azzera filtri
Azzera filtri

element wise concatenation of square matrices

5 visualizzazioni (ultimi 30 giorni)
zozo
zozo il 12 Feb 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)

Risposte (4)

Azzi Abdelmalek
Azzi Abdelmalek il 12 Feb 2013
Modificato: Azzi Abdelmalek il 12 Feb 2013
n=numel(A)
out=arrayfun(@(x) [A(x) B(x)],1:n,'un',0)
  5 Commenti
zozo
zozo il 12 Feb 2013
Modificato: zozo il 12 Feb 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 il 12 Feb 2013
Ok, what about
out=arrayfun(@(x,y) num2str([x y]),A,B,'un',0)

Accedi per commentare.


Thorsten
Thorsten il 12 Feb 2013
Modificato: Thorsten il 12 Feb 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 il 12 Feb 2013
cellfun(@squeeze,num2cell(cat(3,A,B),3),'Uni',false)

zozo
zozo il 12 Feb 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. :-)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by