Inequality problem
9 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Dr. Seis
2012-1-21
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 个评论
Walter Roberson
2012-1-21
"else if" with a space is valid; it just requires one more "end" than otherwise.
Dr. Seis
2012-1-21
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 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!