Matlab运算符

时间:2013-03-19 04:58:49

标签: matlab

我正在攻读我明天的累积考试,我在以前的考试中得到了以下错误的问题。我希望有人可以向我解释这个问题?什么(~m)是什么意思?

问题是:
执行以下脚本后,m的值是多少?

a=1; b=2; m=0;  
if (~m)  
    m = m+1;  
    if (a-b > 0)  
        m = m+1;  
    else  
        m = m -1;  
    end  
elseif (m > 1)  
    m = m + 2;  
else  
    m = m - 2;  
end

正确的答案是0,但为什么?我猜想m = -2

1 个答案:

答案 0 :(得分:9)

~表示NOT。但是,数值均被视为TRUE,除非它们与0完全相同。

因此,该逻辑实际执行的命令是:

m = m+1;  %Following if (~m)
m = m-1;  $Following else

此外,代码中还有一个嵌套的if语句。如果您使用多级缩进,则会更容易阅读。

相关问题