about easy logic operators

2 次查看(过去 30 天)
Umut Oskay
Umut Oskay 2020-4-29
评论: David Hill 2020-4-29
A=[2 4 10 9 24;3 5 56 -1 7];
for i = 1: 5
if A(1,i) && A(2,i) < 0 % if 9 && -1 < 0
fprintf('Invalid dimension.The area cannot be computed.\n')
else
fprintf('The area of rectangle %d is %d.\n',i,(A(1,i)*A(2,i)));
end
end
if A(1,i) && A(2,i) < 0 % if 9 && -1 < 0 i think the left one and the right one is the same but the outputs they give are different . Why are they different? Thanks.

回答(1 个)

David Hill
David Hill 2020-4-29
Need <0 for both conditions
A=[2 4 10 9 24;3 5 56 -1 7];
for i = 1: 5
if A(1,i)<0 && A(2,i)< 0 % if 9 && -1 < 0
fprintf('Invalid dimension.The area cannot be computed.\n')
else
fprintf('The area of rectangle %d is %d.\n',i,(A(1,i)*A(2,i)));
end
end
  2 个评论
Umut Oskay
Umut Oskay 2020-4-29
编辑:Umut Oskay 2020-4-29
A=[2 4 10 9 24;3 5 56 -1 7];
for i = 1: 5
if (A(1,i)< 0) || (A(2,i)< 0)
fprintf('Invalid dimension.The area cannot be computed.\n')
else
fprintf('The area of rectangle %d is %d.\n',i,(A(1,i)*A(2,i)));
end
end
% i got the point and i should write like this thank you but i want to know why [A(1,i) && A(2,i) < 0 % 9 && -1 < 0] are different?
David Hill
David Hill 2020-4-29
Matlab syntax for logicals. Any number other than zero is a logical true value.
9 && -1<0; %true && true = true
A(1,1) && A(2,1)<0;%true && false = false

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by