MATLAB Answers

0

transform matrices into a single matrix?

Asked by luca buonocore on 6 Oct 2016
Latest activity Commented on by luca buonocore on 6 Oct 2016
how I can transform matrices into a single matrix? I have 20 - 6x6 matrices, and I need to create 1 matrix for cluster analysis. Thanks!

  5 Comments

If you have 20 6x6 matrices, that's a total of 20*6*6 values = 720 values. In an output with 20 rows and 6 columns, you can only fit 120 values. Are you sure you want a 20x6 matrix?
I need to do a hierchical clustering on 20 values, but each values is a 6x6 matrix, so in the end I must clustering returning all 20 values. How I can do that?
KSSV
on 6 Oct 2016
Whats is the criteria for hierchical clustering..

Sign in to comment.

2 Answers

Answer by Massimo Zanetti on 6 Oct 2016
Edited by Massimo Zanetti on 6 Oct 2016
 Accepted Answer

You need to assign each variable to only one row of all_data matrix.
A= [ 1 2 3; 4 5 6; 7 8 9];
B= [10 11 12; 13 14 15; 16 17 18];
C= [19 20 21;22 23 24; 25 26 27];
D= [28 29 30; 31 32 33; 34 35 36];
E= [37 38 39; 40 41 42; 43 44 45];
F= [46 47 48; 49 0 51; 52 53 54];
all_data = [A(:)';B(:)';C(:)';D(:)';E(:)';F(:)']
Y= pdist(all_data);
Z = linkage(Y,'ward');
H = dendrogram(Z,'Orientation','left','ColorThreshold','default');
set(H,'LineWidth',1)

  1 Comment

thanks massimo! :)

Sign in to comment.


Answer by elias GR on 6 Oct 2016

Make a 3D matrix. If your 6x6 matrices are in the variables A1,A2,...,A20, then:
A=zeros(6,6,20);
A(:,:,1)=A1;
A(:,:,2)=A2;
...
A(:,:,20)=A20;
At the end all the matrices are inside 1 matrix as you wished, A.

  3 Comments

very elegant... but I need to do hierarchical clustering with this matrix, how I can convert into a 2D matrix?
Give us a specific numerical example of what you need
I have 3 matrices:
A= [ 1 2 3; 4 5 6; 7 8 9];
B= [10 11 12; 13 14 15; 16 17 18];
C= [19 20 21;22 23 24; 25 26 27];
I need to do hierarchical clustering on this variables, and i tried this:
all_data = [A;B;C];
Where (A,B,C) are variables
Y= pdist(all_data)
Z = linkage(Y,'ward');
H = dendrogram(Z,'Orientation','left','ColorThreshold','default');
set(H,'LineWidth',1)
but MATLAB give me more than 3 values, but I need 3 values back, and no more...
How I can do this?

Sign in to comment.