Mercurial > hg > camir-aes2014
comparison toolboxes/MIRtoolbox1.3.2/somtoolbox/som_projections.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 function [cPCAarg, Pdata, Pproto] = som_projections(D,sM,bmus) | |
2 | |
3 % SOM_PROJECTIONS Makes different kinds of projections for the data and the prototypes. | |
4 % | |
5 % [cPCAarg, Pdata, Pproto] = som_projections(D,sM,[bmus]) | |
6 % | |
7 % sD (struct) data struct | |
8 % (matrix) size dlen x dim | |
9 % sM (struct) map struct | |
10 % (matrix) size munits x dim: prototype vectors | |
11 % [bmus] (vector) BMU for each data vector (calculated if not specified) | |
12 % | |
13 % cPCAarg (cell array) PCA arguments: {V, me, l} from pcaproj function | |
14 % Pdata (matrix) size dlen x 7, consisting of 3 projection coordinates from PCA, | |
15 % 1 residual from the rest of the PCA-projection coordinates, | |
16 % and 3 color components | |
17 % Pproto (matrix) size dlen x 7, consisting of 3 projection coordinates from PCA, | |
18 % 1 residual from the rest of the PCA-projection coordinates, | |
19 % 3 color components, and 3 projection coordinates from CCA | |
20 % | |
21 % See also PCAPROJ, CCA, SAMMON, SOM_PROJECTIONS_PLOT, SOM_COLORING, SOM_COLORCODE, | |
22 % SOM_CLUSTERCOLOR, SOM_KMEANCOLOR. | |
23 | |
24 if isstruct(D), | |
25 cn = D.comp_names; | |
26 D = D.data; | |
27 end | |
28 [dlen dim] = size(D); | |
29 if nargin<3, bmus = som_bmus(sM,D); end | |
30 | |
31 % projection of data | |
32 | |
33 [P0,V,me,l] = pcaproj(D,dim); | |
34 D1 = som_fillnans(D,sM); | |
35 P1 = pcaproj(D1,V,me); | |
36 Res4 = zeros(dlen,1); | |
37 if dim<=3, | |
38 Res4 = zeros(dlen,1); | |
39 else | |
40 Res4 = sqrt(sum(P1(:,4:end).*P1(:,4:end),2)); | |
41 end | |
42 P1 = P1(:,1:min(3,dim)); | |
43 if dim<3, P1 = [P1, zeros(dlen,3-dim)]; end | |
44 | |
45 % projection of codebook vectors | |
46 | |
47 P1_m = pcaproj(sM,V,me); | |
48 Res4_m = zeros(dlen,1); | |
49 if dim<=3, | |
50 Res4_m = zeros(dlen,1); | |
51 else | |
52 Res4_m = sum(P1_m(:,4:end).*P1_m(:,4:end),2); | |
53 end | |
54 P1_m = P1_m(:,1:min(3,dim)); | |
55 if dim<3, P1_m = [P1_m, zeros(size(P1_m,1),3-dim)]; end | |
56 | |
57 P2_m = cca(sM,P1_m,20); | |
58 | |
59 PCol_m = som_coloring(sM); | |
60 | |
61 PCol = PCol_m(bmus,:); | |
62 | |
63 % output | |
64 | |
65 cPCAarg = {V,me,l}; | |
66 Pdata = [P1, Res4, PCol]; | |
67 Pproto = [P1_m, Res4_m, PCol_m, P2_m]; | |
68 | |
69 return; | |
70 |