Varying parameters in if statement

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?

 Respuesta aceptada

the cyclist
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

Guessing you can avoid some of this awkward code by using cell array variables such as
x{10}
rather than names like x10, but maybe not, because it looks like even the text of the variable name can vary.
ericson
ericson el 9 de Mzo. de 2014
Yes, both the variable and digit vary
Is there an alternative way wherein I don't need to store it to another variable? I'm using this code for my GUI wherein I will need that code to compare to almost 3000 variables. If I add more variables, it will make the real time clock in my GUI hang.
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.

Iniciar sesión para comentar.

Más respuestas (1)

Mischa Kim
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

1 comentario

ericson
ericson el 9 de Mzo. de 2014
Is there an alternative way wherein I don't need to store it to another variable? I'm using this code for my GUI wherein I will need that code to compare to almost 3000 variables. If I add more variables, it will make the real time clock in my GUI hang.

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 9 de Mzo. de 2014

Editada:

el 9 de Mzo. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by