%% DATA_BASICS
% few elements from Matlab programming 
%
% *Course homepage:* http://cmp.felk.cvut.cz/cmp/courses/Y33ROV/

clear all; rehash;

% create a vector from 0 to 255
a = [0:255];
% revert the elements
b = a(end:-1:1);
% memory allocation 
c = zeros(size(a));
th1 = 75; th2 = 180;
% assign 0 to all c-elements which are smaller that the threshold
c(a<th1) = 0;
c(a>th2) = 255;
% note that this is much faster than using a for-cycle
for i=1:size(a,2),
  if a(i)<th1
	c(i)=0;
  elseif a(i)>th2
	c(i)=255;
  end
end
% without memory pre-allocation it would be even slower
d = [];
for i=1:size(a,2),
  if a(i)<th1
	d = [d,0];
  elseif a(i)>th2
	d = [d,255];
  else
	d = [d,a(i)];
  end
end
% when assigning vectors both need to be of the same size
c(a>=th1 & a<=th2) = a(a>=th1 & a<=th2);
% open a figure and clear the possible content
figure(1); clf; 
% plot the vector a and hold the content
plot(a,'-g'), hold on
where = 1:10:size(a,2);
% plot only some elements
plot(where,a(where),'*g')
plot(b,'-r'),
plot(c,'-b'),
% better plotting of discrete data
stem(where,c(where),'b')
grid on
title('title of the figure')
xlabel('x-axis label')
ylabel('y-axis label')
