How to concatenate or save iteration from a loop when the answers are vectors?

2 views (last 30 days)
I'm very new to MatLab and need some help with saving iterations from a loop. I know that when the answers from a loop are scalar, you can make an array of answers. However, is there any way to do this when the answers from your loop are a vector? Here is my code:
Curve = input('What is your data: ' );
plot (Curve(1,1:end))
n = 0;
while n < size(Curve,1)
n = n+1;
TS(n) = max(Curve(n,:));
end
% Yield Point
k = 0;
while k < size(Curve,1)
k = k+1;
[obs,YP_1] = findpeaks(Curve(k,:));%in MatLab 2013b
c = (length(YP_1)-1);
Y_P(k) = YP_1(c)+1;
end
% Elasticity
b = 0;
a = 0;
while b < size(Curve,1)
b = b+1;
YP(b) = Curve(b,Y_P)
end
Since Y_P is a vector, I am getting my answer for YP as a vector which is what I want. But each vector gets overwritten with the next iteration and I need all the data saved. I would really appreciate the help! Thank you!
  2 Comments
Priti Dhiman
Priti Dhiman on 1 Dec 2014
I'm currently working with a 18x3509 matrix which is actually a concatenation of two matrices of different dimensions.

Sign in to comment.

Accepted Answer

Mohammad Abouali
Mohammad Abouali on 1 Dec 2014
Edited: Mohammad Abouali on 1 Dec 2014
add an extra dimension
So instead of
Answer(i)= ....
write
Answer(i,j)= ....
where j is the loop index.
If the size is changing between each loop iteration you can also use cell arrays.
NOTE: Your code is all jammed up I can't really see what is what. Try to use "{} Code" when posting so your code is readable.
  4 Comments
Mohammad Abouali
Mohammad Abouali on 1 Dec 2014
Edited: Mohammad Abouali on 1 Dec 2014
you are welcome.
One note: actually k < size(Curve,1) was not ignoring the last row. That was correct (my mistake). So make sure that you use for k=1:size(Curve,1) every where to process all rows.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!