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.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 27 Apr. 2016
MEI(end+1) = moment(node)

2 Kommentare

Greg
Greg am 27 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by