Inequality problem

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

 采纳的回答

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 个评论

Also you are using else<space>if, when I think you want elseif (no space between)
"else if" with a space is valid; it just requires one more "end" than otherwise.
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).

请先登录,再进行评论。

更多回答(1 个)

Synchronie
Synchronie 2012-1-22

0 个投票

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

类别

在 帮助中心 和 File Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by