How can I make a conditional statement when using variables?

8 visualizzazioni (ultimi 30 giorni)
In my script I first defined a for loop:
for n = 1:inf
a = 10^(n+1);
b = 10*a;
so the for-loop assigns every iteration new values to my variables a and b.
Right after it I made an conditional statement:
if (a <= x)&&(x < b)
I want my value x (which I assign when activating the script) to lie between a and b. But matlab won't agree with me. It says:
Operands to the || and && operators must be convertible to logical scalar
values.
Error in palin (line 10)
if (a <= x)&&(x < b)
Though I thought values to the variables a and b were assigned earlier in the script, matlab would recognize these values. I was wrong. Does anybody has a suggestion what I could do to fix this error? I hope it is very easy to solve, so that soon someone will help me out of this. Thanks in advance.

Risposta accettata

Wayne King
Wayne King il 24 Dic 2013
Modificato: Wayne King il 24 Dic 2013
I'm guessing from the error message you report that x is a vector, not a scalar. From the code snippet you show, both a and b are scalars, x should be a scalar too.
So for example, look at the following
x = 10001;
for n = 1:3
a = 10^(n+1);
b = 10*a;
if (a <= x)&&(x < b)
disp('yes');
else
disp('no');
end
end
Now, if you try the above with x a vector
x = 10000:10004;
You'll get the error message you are seeing.
  3 Commenti
Image Analyst
Image Analyst il 24 Dic 2013
I find it hard to believe that having the upper limit as 3 or something else, like inf, would cause it to work or fail. My guess is that you're changing x inside the loop and that if n is more than 3 somehow x turns into a vector. Does x appear at all in the loop other than the if statement? If so, are you concatenating/appending to it?
Maik Petersen
Maik Petersen il 24 Dic 2013
Yes, I am doing some calculations with x inside the loop, but I'm not appending to it, in contrast I'm making the scalar a smaller scalar inside the loop. But for now I don't get the error anymore, so I guess I made some small mistake in the script. Thanks for thinking along with me!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by