How do I save outputs to a vector from if statement

MEI=[]
for node=0:dx:L;
if node>=0 && node<a
moment=@(x) (RA*x)
MEI=moment(node)
elseif node>=a && node<b
moment=@(x) (RA*x)-(Pa*(x-a))
MEI=moment(node)
elseif node>=b && node<=L
moment=@(x) (RA*x)-(Pa*(x-a))-(Pb*(x-b))
MEI=moment(node)
end
end
I want to save the outputs from the calculations to a 1 column vector. I can only save the last calculated value.

 Respuesta aceptada

MEI(end+1) = moment(node)

2 comentarios

Greg
Greg el 27 de Abr. de 2016
Thank you very much. Can you explain the logic behind that answer.
MEI(end) refers to the last element of MEI. MEI(end+1) refers to the location after the last element. Assigning to MEI(end+1) grows MEI to be large enough to fit the new value and then assigns the new value to the location.
Note that your conditions do not always assign a result. If they did always assign a result, it would be more efficient to assign a different approach.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 27 de Abr. de 2016

Comentada:

el 27 de Abr. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by