Skip certain values in plot and connect adjacent points

조회 수: 16 (최근 30일)
Daniyar Saparov
Daniyar Saparov 2019년 8월 27일
편집: Adam Danz 2019년 8월 27일
Hello,
I am trying to plot some data with a regular "plot" function, but I want to skip some certain values and connect the adjacent points of that skipped value. For example, I want to plot something like this:
x = 0:pi/10:2*pi;
y = sin(x);
plot(y)
and skip for examples values of x at points pi/2 or 3*pi/2, but connect the points around this skipped values. I tried:
x = 0:pi/10:2*pi;
y = sin(x);
plot(y(x~=pi/2))
but, it is not doing what I exactly want to do. I want the spacing of x values remain the same, except the skipped point, where the connected adjacent points obviously will have more separation than other pair of points. How can I do this kind of plot? Many thanks in advance.

채택된 답변

Adam Danz
Adam Danz 2019년 8월 27일
How to skip x values.
x = 0:pi/10:2*pi;
skipPoints = [pi/2, 3*pi/2]; % list points to skip
x(ismember(x,skipPoints)) = []; % remove skip-points
% now compute Y with only the desired points
y = sin(x);
plot(x,y)
If you'd rather not connect the points adjacent to the skipped values, you can replace the skipped values with NaN
x = 0:pi/10:2*pi;
skipPoints = [pi/2, 3*pi/2]; % list points to skip
x(ismember(x,skipPoints)) = NaN; % Replace with nan
% now compute Y with only the desired points
y = sin(x);
plot(x,y)
  댓글 수: 2
Daniyar Saparov
Daniyar Saparov 2019년 8월 27일
Hello Adam,
Many Thanks! The first one worked perfectly for me. Actually, I came up with another solution, assigning an average value of adjacent points to the skipped value, such as:
y(x==pi/2) = (y(x==pi/2-pi/10)+y(x==pi/2+pi/10))/2;
But your method is way better and saves a lot of space and time. Many thanks!
Adam Danz
Adam Danz 2019년 8월 27일
편집: Adam Danz 2019년 8월 27일
Glad I could help!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by