在matlab中使用调试器

时间:2013-05-26 07:24:11

标签: matlab debugging

我想在matlab中调试以下最简单的代码,并澄清为什么它始终执行if语句

function testfile(x)
if 3<x<6
disp('in the middle of range');
else
    disp('out of range');

end
end

我使用了以下代码进行调试

echo testfile on
 testfile(-2)
in the middle of range


testfile(6)
in the middle of range

为什么它不执行else语句?我使用以下代码作为测试

 5<4<8

ans =

     1

这是否意味着在这种风格中写if语句是错误的?我理解它就像5&lt; 4 ||一样4&lt; 8?然后它告诉我为什么它只在语句中执行而且永远不会到达else

1 个答案:

答案 0 :(得分:3)

5<4<8评估为(5<4)<8。如果我们首先在括号中解析表达式,我们有0<8,这是真的。使用5<4==0进行测试,其评估结果为true

您要做的是检查x是否大于3且小于6,即

3<x && x<6