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.

 Réponse acceptée

MEI(end+1) = moment(node)

2 commentaires

Greg
Greg le 27 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by