Inequality problem

9 visualizaciones (últimos 30 días)
Synchronie
Synchronie el 21 de En. de 2012
Hi.... Does the following inequality work on Matlab:
for col=1:1:num_cols
if (0.00>(real_qn1(col))<0.25)
real_c(col)=(1/sqrt(2));
else if (0.25>(real_qn1(col))<0.50)
real_c(col)=(-1/sqrt(2));
else if (0.50>(real_qn1(col))<0.75)
real_c(col)=(-sqrt(2));
else if (0.75>(real_qn1(col))<1.00)
real_c(col)=(sqrt(2));
end
end
end
end
end
I tried it.. But it's giving me inverted results..
Thank you

Respuesta aceptada

Dr. Seis
Dr. Seis el 21 de En. de 2012
You have to split them up... instead of:
A < X < B
you have to do:
(A < X) && (X < B)
Incidentally, make sure you are using good logic. At your first if you have:
0.00 > X < 0.25
which is the same(*) as saying:
(X < 0.0) && (X < 0.25)
The second part is redundant, because if X is less than 0.0 it is also less than 0.25
(*) By saying "same" I mean the way you would interpret the statement. Matlab executes those two statements very differently.
  3 comentarios
Walter Roberson
Walter Roberson el 21 de En. de 2012
"else if" with a space is valid; it just requires one more "end" than otherwise.
Dr. Seis
Dr. Seis el 21 de En. de 2012
I am not arguing against it because it is not valid, I am arguing against it because it is not efficient (from a code writing/reading standpoint).

Iniciar sesión para comentar.

Más respuestas (1)

Synchronie
Synchronie el 22 de En. de 2012
Thanks a lot for your suggestions.. I paid attention to the inequality sign and used elseif(without space) and it worked perfectly well..

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by