Inequality problem

조회 수: 9 (최근 30일)
Synchronie
Synchronie 2012년 1월 21일
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

채택된 답변

Dr. Seis
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
Walter Roberson 2012년 1월 21일
"else if" with a space is valid; it just requires one more "end" than otherwise.
Dr. Seis
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개)

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

카테고리

Help CenterFile 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