IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
draw_covariance.m
Go to the documentation of this file.
1 %>@ingroup graphicsapi
2 %> @file
3 %> @brief Draws covariance matrix
4 %>
6 %
7 %> @param C
8 %> @param x
9 %> @param y
10 function draw_covariance(C, x, y)
11 global SCALE;
12 
13 nf = size(C, 1);
14 
15 if ~exist('x', 'var')
16  x = 1:nf;
17 end;
18 
19 
20 if ~exist('y', 'var')
21  y = [];
22 end;
23 
24 
25 [XX, YY] = meshgrid(x, x);
26 
27 x1 = x(1);
28 x2 = x(end);
29 xmin = min(x1, x2);
30 xmax = max(x1, x2);
31 xrange = xmax-xmin;
32 flag_reverse = x1 > x2;
33 
34 % pcolor(XX, YY, C);
35 imagesc(x([1, end]), x([1, end]), C);
36 axis image;
37 shading interp;
38 hold on;
39 % contour(XX, YY, C, 4, 'LineWidth', 20, 'Color', 'k');
40 
41 if ~isempty(y)
42  y = (y-min(y))/(max(y)-min(y)); %shift-scale
43  k = 100; % scaling for reference spectrum
44  z = .1*ones(1, length(x));
45  colour = 'k'; %[.5, .5, .5];
46  width = scaled(3);
47  plot3(x, x2-y*k, z, 'Color', colour, 'LineWidth', width);
48  plot3(x2-y*k, x, z, 'Color', colour, 'LineWidth', width);
49 else
50  k = 0;
51 end;
52 
53 % plot3([x2, x2, x1, x1, x2], [x1, x2, x2, x1, x1], [.1, .1, .1, .1, .1], 'k', 'LineWidth', scaled(2));
54 
55 
56 set(gca, 'XLim', [xmin-xrange*.02-k, xmax+xrange*.02]);
57 set(gca, 'YLim', [xmin-xrange*.02-k, xmax+xrange*.02]);
58 xlabel('Wavenumber (cm^{-1})');
59 ylabel('Wavenumber (cm^{-1})');
60 if flag_reverse
61  set(gca, 'XDir', 'reverse');
62  set(gca, 'YDir', 'reverse');
63 end;
64 % set(gca, 'XTick', [1210, 1645]);
65 % set(gca, 'YTick', [1210, 1645]);
66 box off;
67 
68 format_frank(gcf, 1);
69 
function scaled(in i)
function draw_covariance(in C, in x, in y)
function data_draw_covariance(in data, in which, in y_ref, in flag_inv)