Effacer les filtres
Effacer les filtres

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

3 vues (au cours des 30 derniers jours)
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 commentaires
Image Analyst
Image Analyst le 1 Déc 2014
Can you give an example for data that is supposed to be inputted for "Curve"?
Priti Dhiman
Priti Dhiman le 1 Déc 2014
I'm currently working with a 18x3509 matrix which is actually a concatenation of two matrices of different dimensions.

Connectez-vous pour commenter.

Réponse acceptée

Mohammad Abouali
Mohammad Abouali le 1 Déc 2014
Modifié(e) : Mohammad Abouali le 1 Déc 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 commentaires
Priti Dhiman
Priti Dhiman le 1 Déc 2014
Thank you, thank you, thank you! Amazing answer, I truly appreciate your help!
Mohammad Abouali
Mohammad Abouali le 1 Déc 2014
Modifié(e) : Mohammad Abouali le 1 Déc 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by