How to not draw some points of an interval( hmax and hmin )

1 view (last 30 days)
I have this function but i have to finish it. I have to say to matlab to not draw the points of the graph between hmax and hmin Can someone help me???
h = max(y); hmax = (percT/100)*h; hmin = (percB)/100*h;
for i=1:size(y,1) if y(i)> hmax y(i) = hmax; else if y(i)< hmin y(i) = hmin; i have to finish???
Many thanks in advance!!!
Antonella on 15 Oct 2013
percT is 60 an percB is 30. the variable y rapresents the high of the graph (the graph is about a hand-written word). So i have to remove the middle part of this graph(word) so every point between 30-60% of the total high. Hope this is clearer! Many thanks in advance!

Sign in to comment.

Answers (1)

Jonathan LeSage
Jonathan LeSage on 14 Oct 2013
You can use logical indexing to remove any values greater than and less than the desired bounds.
% Defining some arbitrary data
x = 0:0.05:2*pi;
y = sin(x);
% Defining some arbitrary bounds
hmax = 0.5;
hmin = -0.5;
y_bounded = y;
% Using logical indexing to replace all values > hmax with NaN
% When plotting, MATLAB ignores values that are defined as NaN
y_bounded(y_bounded > hmax) = NaN;
y_bounded(y_bounded < hmin) = NaN;
% Plot Results
grid on;
legend('Orignal Data','Bounded Data');
Hope this helps!
  1 Comment
Antonella on 15 Oct 2013
thanks really much for the answer! I'll try and check if it's work! Anyway i have to use if, else if i can translate what you wrote me in this way? is there the possibility to do this or not? Really many thanks ;)

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!