【问题标题】:Matlab OperatorsMatlab 运算符
【发布时间】:2013-03-07 16:07:45
【问题描述】:

我正在准备明天的累积考试,但我在之前的考试中答错了以下问题。我希望有人可以向我解释这个问题? (~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

【问题讨论】:

  • 要了解~ 的含义,只需输入doc ~
  • 我知道 ~ 是什么意思,但我不确定写“if NOT m”背后的逻辑是什么

标签: matlab


【解决方案1】:

~ 表示NOT。但是,数值都被视为TRUE,除非它们完全等于0

所以,这个逻辑实际执行的命令是:

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

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

【讨论】:

  • 谢谢!我知道“~”的意思是“不”,但我不确定“if (~m)”到底指的是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 2016-02-07
  • 1970-01-01
  • 2012-02-08
  • 2015-04-13
相关资源
最近更新 更多