Varying parameters in if statement
    2 views (last 30 days)
  
       Show older comments
    
Hi! I would like to create a conditional statement where the parameters of my if statement is changing. Is it possible to vary the parameters in the if statement?
Here is an example:
x10=1;
i=10;
word='x';
if ('%s%d~=1',word,i)
v='not working'
end
I tried this one but it is not working, any suggestion on how to make it work?
0 Comments
Accepted Answer
  the cyclist
      
      
 on 9 Mar 2014
        Here is the closest I can get to the code that I think you wanted:
x10=1;
i=10;
word='x';
% Create a "pass/fail" variable that will be tested.
eval(sprintf('PF = %s%d~=1;',word,i))
% Do the test
if PF
    v = 'not working'
end
3 Comments
  the cyclist
      
      
 on 9 Mar 2014
				x10=1;
i=10;
word='x';
% Create a "pass/fail" variable that will be tested.
eval(sprintf('if %s%d~=1, v = ''not working''; disp(v); end ',word,i))
If you don't actually need to display the 'not working' text, then you can get rid of the
disp(v)
statement inside the eval() statement.
More Answers (1)
  Mischa Kim
    
      
 on 9 Mar 2014
        
      Edited: Mischa Kim
    
      
 on 9 Mar 2014
  
      Something like:
 mynum = 2;   % change to mynum = 1   
 x10   = 1;
 word  = 'x';
 i     = 10;
 if (eval(genvarname(strcat(word,num2str(i)))) == mynum)
    fprintf('x10 is %d\n', mynum);
 else
    fprintf('x10 is not %d\n', mynum);
 end
See Also
Categories
				Find more on Structures 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!

