If statement for a values in a string

4 vues (au cours des 30 derniers jours)
Andre
Andre le 31 Mai 2013
Iam a Matlab newbi, so need some help. Working on a for-loop. In the for-loop my if statement doesn't work as i wish. I want it to work like this: When the value of i= one of the numbers in the string, h, make a plot of the function f(i). So the problem is the first line in the if-statement.
h=[8 17 25 30 36 41 49 58]
for i=1:65
F(i)
if i= one of the values in the string defined above
plot F(i)
end
end
Any suggestions to fix this if-statement?

Réponse acceptée

Jonathan Sullivan
Jonathan Sullivan le 31 Mai 2013
The variable h does appear to be a string, but rather a vector of doubles. What you want to use to determine if a scalar is equal to any element of a vector is the function ismember
Example
ismember(i,h)
Hope this helps.
  2 commentaires
Andre
Andre le 31 Mai 2013
Modifié(e) : Andre le 31 Mai 2013
Thanks for replying!
Doesn't the ismember function only tell if its true or false?
I want my function to be plotted if i=one of the values in h. I don't want to know if i=one of the values i h or not.
Jan
Jan le 31 Mai 2013
@Andre: I do not understand the last paragraph of your comment.

Connectez-vous pour commenter.

Plus de réponses (1)

Jan
Jan le 31 Mai 2013
The most straight solution would be not to run the loop from 1 to 65, but:
h = [8 17 25 30 36 41 49 58]
for i = h
...
Now the loop runs through the elements of h only. If this does not matches your needs for any reasons, the suggested ismember is fine:
h = [8 17 25 30 36 41 49 58]
for i=1:65
F(i)
if ismember(i, h)
plot F(i)
end
end
This is leaner and faster:
if any(i == h)
  1 commentaire
Andre
Andre le 1 Juin 2013
I understand. Thanks to both of you for helping me out:)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by