MATLAB Answers

How to plot a line over a specific interval?

8 views (last 30 days)
I am attempting to plot cubic splines for 5 points. I have 4 functions to match each segment, but I only want the interval of the line that applies to that segment to appear on my plot.
I have these four lines:
plot (x,g(1))
plot (x, g(2))
plot(x, g(3))
plot(x, g(4))
They appear as so:
This is correct, but i want g1 to ONLY show from -1 to -.5. g2 to ONLY show from -.5 to 0, etc.

  0 Comments

Sign in to comment.

Accepted Answer

the cyclist
the cyclist on 29 Jun 2020
Edited: the cyclist on 29 Jun 2020
Can you upload the data? Specifically, it is unclear to me what sort of data type g is.
Instead of plotting x, you'll want to do something like plotting
x(x>-1 & x<-0.5); % for g1
but I can't tell how to handle g1 without more info.
Also, it was unclear to me if the intervals are meant to be on x, or on g.

  3 Comments

madhan ravi
madhan ravi on 29 Jun 2020
Probably you meant & instead of &&
Alexander Horton
Alexander Horton on 30 Jun 2020
I ended up figuring everything out. I ended up using fplot, which let me put in an interval to show as an input.
fplot (@(x) (a(2).*(x-z(2)).^3+b(2).*(x-z(2)).^2+c(2).*(x-z(2))+d(2)), [-1 -.5], '-.r','linewidth',2);
Im sure this isnt the most efficient way but it got the job done haha.

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 29 Jun 2020
ix = (g1 >= -1) & (g1 <= -.5); % follow the same for the rest
plot(x(ix), g1(ix))

  2 Comments

the cyclist
the cyclist on 29 Jun 2020
The fact that OP wrote
g(1)
rather than
g1
made me hesitate to suggest this solution. We'll see.
madhan ravi
madhan ravi on 29 Jun 2020
Haha me too , I hate suspenses xD.

Sign in to comment.