I should remove yellow there, and get a maximum of x (when y = 0)
and there's no x-intercept
I tried :
if y < 0, y = [] else plot(x, y)
mask = (y<0) cla(mask)
interp1(y, x, 0) => it comes to zero
but any of them didn't work.
if I can cut off that part, I can get the answer : [ k, l ] = find(x==max(x)) x_int = [ max(x) , y(k, l) ] .
How can I trimming that part?

 Réponse acceptée

DGM
DGM le 3 Avr 2021
Modifié(e) : DGM le 3 Avr 2021

1 vote

Try something like this:
x=0:300;
y=-0.008*x.^2 + 2*x + 1.5;
y(y<0)=NaN;
Anything that's NaN won't be plotted.
Alternatively, you can do it the way you were trying:
mask=y>=0;
y=y(mask);
x=x(mask);
and then your intercept finding method should work.
intercept=[x(end) y(end)]
Intercepts could also be found symbolically.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by