Varying parameters in if statement
    2 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    ericson
 el 9 de Mzo. de 2014
  
    
    
    
    
    Editada: Mischa Kim
    
      
 el 9 de Mzo. de 2014
            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 comentarios
Respuesta aceptada
  the cyclist
      
      
 el 9 de Mzo. de 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 comentarios
  the cyclist
      
      
 el 9 de Mzo. de 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.
Más respuestas (1)
  Mischa Kim
    
      
 el 9 de Mzo. de 2014
        
      Editada: Mischa Kim
    
      
 el 9 de Mzo. de 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
Ver también
Categorías
				Más información sobre Structures en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!