IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
draw3d2_core.m
Go to the documentation of this file.
1 %>@ingroup datasettools
2 %>@file
3 %>@brief draw3d2_core
4 function handles = draw3d2_core(data, idxfea, confidences, flags_min, ks, flag_wallpoints)
5 
6 [minmax, xyz] = draw3d2_get_minmax(data, idxfea, flags_min, ks);
7 
8 spans = minmax(2, :)-minmax(1, :);
9 
10 
11 KOFF = 0.005;
12 
13 pieces = data_split_classes(data);
14 no_classes = size(pieces, 2);
15 for i = 1:no_classes
16  X = pieces(i).X(:, idxfea([1 2 3]));
17 
18  hh = plot3(X(:, 1), X(:, 2), X(:, 3), 'Color', find_color(i), 'Marker', find_marker(i), 'MarkerSize', find_marker_size(i), 'MarkerFaceColor', find_color(i), 'LineStyle', 'none');
19  handles(i) = hh(1);
20  hold on;
21 
22  if flag_wallpoints
23  plot3(X(:, 1), X(:, 2), iif(flags_min(3), minmax(1, 3)+spans(3)*KOFF*(i-1), minmax(2, 3)-spans(3)*KOFF*(i-1))*ones(pieces(i).no, 1), 'Color', find_color(i), 'Marker', find_marker(i), 'MarkerSize', find_marker_size(i)*.6, 'MarkerFaceColor', find_color(i), 'LineStyle', 'none', 'MarkerEdgeColor', 'none');
24  plot3(X(:, 1), iif(flags_min(2), minmax(1, 2)+spans(2)*KOFF*(i-1), minmax(2, 2)-spans(2)*KOFF*(i-1))*ones(pieces(i).no, 1), X(:, 3), 'Color', find_color(i), 'Marker', find_marker(i), 'MarkerSize', find_marker_size(i)*.6, 'MarkerFaceColor', find_color(i), 'LineStyle', 'none', 'MarkerEdgeColor', 'none');
25  plot3(iif(flags_min(1), minmax(1, 1)+spans(1)*KOFF*(i-1), minmax(2, 1)-spans(1)*KOFF*(i-1))*ones(pieces(i).no, 1), X(:, 2), X(:, 3), 'Color', find_color(i), 'Marker', find_marker(i), 'MarkerSize', find_marker_size(i)*.6, 'MarkerFaceColor', find_color(i), 'LineStyle', 'none', 'MarkerEdgeColor', 'none');
26  end;
27 
28  % ellipses
29  if ~isempty(confidences)
30  m = mean(X);
31  C = cov(X);
32  for j = 1:length(confidences)
33  error_ellipse2(C, m, 'conf', confidences(j), 'style', find_color(i), 'xyz', xyz);
34  end;
35  end;
36 end
function draw3d2_core(in data, in idxfea, in confidences, in flags_min, in ks, in flag_wallpoints)
function find_marker(in i)
function find_color(in i)
function find_marker_size(in i)
function error_ellipse2(in varargin)
function iif(in cond, in x1, in x2)
function data_split_classes(in data, in hierarchy)
function draw3d2_get_minmax(in data, in idxfea, in flags_min, in ks)