Borrar filtros
Borrar filtros

How to change a function within a loop at certain point in MATLAB

2 visualizaciones (últimos 30 días)
Sebastian Kudera
Sebastian Kudera el 5 de Mzo. de 2020
Editada: Stephen23 el 5 de Mzo. de 2020
I have this piece of code:
x=0:20000;
h0=10;
alfa0=-0.1*pi/180;
h=h0+tan(alfa0).*x+10^(-6)*-0.4.*x.^2/(2*(cos(alfa0)^2));
Now, when executed it gives me this graph which shows that h is decreasing as x is increasing.
I would like Matlab to stop when h gets to 0, and then use a different function for h. Let's say
h=2.*x
so we have an actual example.
I tried some stuff with while loops and if statements, but I am getting nowhere. Thanks for the help.

Respuestas (1)

Stephen23
Stephen23 el 5 de Mzo. de 2020
Editada: Stephen23 el 5 de Mzo. de 2020
" I tried some stuff with while loops and if statements..."
That is entirely the wrong approach in MATLAB. Just use logical indexing:
idx = h<=0;
h(idx) = 2.*x(idx);

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by