Skip certain values in plot and connect adjacent points

16 Ansichten (letzte 30 Tage)
Daniyar Saparov
Daniyar Saparov am 27 Aug. 2019
Bearbeitet: Adam Danz am 27 Aug. 2019
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.

Akzeptierte Antwort

Adam Danz
Adam Danz am 27 Aug. 2019
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 Kommentare
Daniyar Saparov
Daniyar Saparov am 27 Aug. 2019
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 am 27 Aug. 2019
Bearbeitet: Adam Danz am 27 Aug. 2019
Glad I could help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by