Varying parameters in if statement
    조회 수: 2 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  the cyclist
      
      
 2014년 3월 9일
        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
  the cyclist
      
      
 2014년 3월 9일
				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.
추가 답변 (1개)
  Mischa Kim
    
      
 2014년 3월 9일
        
      편집: Mischa Kim
    
      
 2014년 3월 9일
  
      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
참고 항목
카테고리
				Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


