Show only two y values in a plot
이전 댓글 표시
Hello all,
Any possible way to show only two value (0.02 and 0.04) for the y-axis, because the other values are just noise.
This is what I use for now to plot:
figure()
plot(time,wavelength,'b-x', 'LineWidth',2)
grid
axis tight
xlabel('Time')
ylabel('Wavelength')
hold on
Thank you!

댓글 수: 9
Dyuman Joshi
2022년 12월 2일
Try
idx=ismember(wavelength,[0.02 0.04]);
%ideally one should use ismembertol
plot(time(idx),wavelength(idx),'b-x', 'LineWidth',2)
Hussein Kokash
2022년 12월 2일
Hussein Kokash
2022년 12월 2일
Dyuman Joshi
2022년 12월 2일
Because the code I wrote only checks for 0.02 and 0.04, which is what you wanted.
Hussein Kokash
2022년 12월 2일
Dyuman Joshi
2022년 12월 2일
This is the problem with floating point numbers, which is why I made the comment.
Try -
idx=ismembertol(wavelength,[0.033333333333333, 0.2],1e-15);
There's still a chance that it might not work, because I don't know the values. If it doesn't, post your data here. Only then can I can say for sure, what you can do.
Hussein Kokash
2022년 12월 2일
Dyuman Joshi
2022년 12월 2일
Alright, did my code work? the one with ismembertol() ?
Hussein Kokash
2022년 12월 2일
답변 (1개)
KSSV
2022년 12월 2일
tol = 10^-3 ; % fix your tolerance
idx = abs(wavelength-0.02)<=tol | abs(wavelength-0.04)<=tol ;
plot(time(idx),wavelength(idx),'+r')
카테고리
도움말 센터 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
