If statement for a values in a string
    11 views (last 30 days)
  
       Show older comments
    
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?
0 Comments
Accepted Answer
  Jonathan Sullivan
      
 on 31 May 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 Comments
More Answers (1)
  Jan
      
      
 on 31 May 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)
See Also
Categories
				Find more on Entering Commands 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!

