IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
data_draw_covariance.m
Go to the documentation of this file.
1 %> @ingroup datasettools
2 %> @file
3 %> @brief Draws covariance matrix
4 %> @sa draw_covariance.m
5 %
6 %> @param data
7 %> @param which 'c': covariance; 'w': within-class scatter matrix; 'b': between-class scatter matrix
8 %> @param y_ref =mean(X, 1) The "hint curve"
9 %> @param flag_inv Whether to invert before drawing
10 function data = data_draw_covariance(data, which, y_ref, flag_inv)
11 
12 if ~exist('which', 'var')
13  which = 'c';
14 end;
15 
16 if nargin < 4 || isempty(flag_inv)
17  flag_inv = 0;
18 end;
19 
20 X = data.X;
21 
22 if ~exist('y_ref', 'var')
23  y_ref = mean(X, 1);
24 end;
25 
26 no = size(X, 1);
27 if which == 'c'
28  C = cov(X);
29 else
30  [SB, SW] = data_calculate_scatters(data, 0, 0);
31 
32  if which == 'w'
33  C = SW;
34  else
35  C = SB;
36  end;
37 % C = C/no;
38 end;
39 
40 if flag_inv
41  C = inv(C);
42 end;
43 
44 draw_covariance(C, data.fea_x, y_ref);
function data_calculate_scatters(in data, in flag_modified_s_b, in P)
function draw_covariance(in C, in x, in y)
function data_draw_covariance(in data, in which, in y_ref, in flag_inv)