Mark specific values on a plot!
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Panos Ale
el 19 de Oct. de 2017
Respondida: Hellen Nassuna
el 8 de Oct. de 2018
Hi consider the following plot:
x=1:100;
y=600+(1400-600).*rand(100,1);
plot(x,y)
How can I mark the y values between 900 and 1100? Thanks!
1 comentario
Rik
el 19 de Oct. de 2017
With hold on and plotting a line over it with an increased line width you could emphasize a certain range.
Respuesta aceptada
Birdman
el 19 de Oct. de 2017
Additional to your code, use the following lines:
yMark=zeros(1,100);%preallocation for speed
for i=1:1:length(y)
if(y(i)>=900 && y(i)<=1100)
yMark(i)=y(i);
end
end
plot(x,yMark,'->')
2 comentarios
Rik
el 19 de Oct. de 2017
You can vectorize the loop:
yMark=zeros(1,100);
yMark(y>=900 & y<=1100)=y(y>=900 & y<=1100)
Be aware that this code (both mine and the loop) will result in zero values outside the wanted range. You can fix this by either initializing to a NaN (just replace zeros with NaN), or shortening x the same way as you shorten y:
yMark=y(y>=900 & y<=1100)
xMark=x(y>=900 & y<=1100)
Birdman
el 19 de Oct. de 2017
Yes you are right. It will make the code more efficient. I just wanted to mark those values on the plot. Thank you for your attention.
Más respuestas (1)
Hellen Nassuna
el 8 de Oct. de 2018
x=1:100;
y=600+(1400-600).*rand(100,1);
plot(x,y)
hold on;
yMark=NaN(1,100);%preallocation for speed
for i=1:1:length(y)
if(y(i)>=900 && y(i)<=1100)
yMark(i)=y(i);
end
end
plot(x,yMark,'->')
hold off
if true
% code
end
0 comentarios
Ver también
Categorías
Más información sobre Graphics Performance en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!