2013-03-19 3 views
1

Я изучаю кумулятивный экзамен У меня есть завтра, и на предыдущем экзамене я получил следующий вопрос. Я надеялся, что кто-то может объяснить мне этот вопрос? Что означает (~ m)?Операторы Matlab

Вопрос:
После выполнения следующего скрипта, каково значение 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

+0

Чтобы узнать, что означает '' ', просто введите' doc ~ '. –

+0

Я знаю, что означает, но я не был уверен, что логика написания «if NOT m» – Abi

ответ

9

~ означает NOT. Однако числовые значения считаются TRUE, если они не идентичны 0.

Таким образом, команды, которые на самом деле выполняются с помощью этой логики:

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

Кроме того, есть вложенная if заявление в коде. Это будет легче читать, если вы использовали несколько отступов уровня.

+0

Спасибо! Я знал, что «~» означает «нет», но я не был уверен, что «если (~ m)» фактически упоминается – Abi

Смежные вопросы