Effacer les filtres
Effacer les filtres

Save values in a loop in a vector

4 vues (au cours des 30 derniers jours)
Daniel
Daniel le 8 Sep 2016
Commenté : mbonus le 12 Sep 2016
Hi !
I would need some help for my home assignment cause im stucked. I need to iterate thru a vector and look for some values that are equal to 1.00, 0.80, 0.60, 0.40, 0.20 and 0.10. Then i need to store those values in another vector, how do i do this? Below u see the code for plotting those but i need to save them all in a vector so that i can make a nice table!
for i=1:size(d)
if d(i)==1.00000
disp(h(i))
elseif d(i)==0.80000
disp(h(i))
elseif d(i)==0.60000
disp(h(i))
elseif d(i)==0.40000
disp(h(i))
elseif d(i)==0.20000
disp(h(i))
elseif d(i)==0.10000
disp(h(i))
end
end

Réponses (2)

mbonus
mbonus le 8 Sep 2016
Modifié(e) : mbonus le 8 Sep 2016
before the loop
v = zeros(size(d));
then just insert this line for each part of the if structure
v(i) = d(i);
If you need to get rid of the indexes with no values you can do this after the loop
v(find(0)) = [];
  9 commentaires
Daniel
Daniel le 9 Sep 2016
and result i get is all i positions in vector d which is == to 1.00, 0.80 and so on. But what i need is to use those i`s and save the values in z(i) in a new vector Z
mbonus
mbonus le 12 Sep 2016
Could post an example of what you get and what it should look like?

Connectez-vous pour commenter.


Thorsten
Thorsten le 9 Sep 2016
I found it a bit hard to understand what your are looking for. As far as I understood, this can solve your problem:
p = [1.00, 0.80, 0.60, 0.40, 0.20, 0.10];
for i = 1:numel(p) % for all values in p
Z{i} = z(h == p(i)); % find all positions in h that equal p(i), and assign the corresponding positions in z to a new variable Z
end
  2 commentaires
Daniel
Daniel le 9 Sep 2016
For exampel: I have d=[1 22 31 41 51 6 7 8 9 10]; z=[1 2 3 4 5 6 7 8 9 10];
Now, i want to search in d for a value of 41. Then, give me that position, which in this case is on fourth column, hence i = 4
Now, go into the z vector and find me the value of column 4 and take that value and place it into Z vector :)
Thorsten
Thorsten le 9 Sep 2016
Modifié(e) : Thorsten le 9 Sep 2016
Z = z(d==41)
In my code above d == h and p(i) == 41. Because there can be, depending on your data, in principle one, two, or even more matches for d== 41, you have to store one, or two, etc values in Z, i.e., a different number of values for each i. That's why I use Z{i}. If you can guarantee that there is always one and only one match for each i, you can use Z(i).

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by