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.

 Accepted Answer

MEI(end+1) = moment(node)

2 Comments

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.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!