MATLAB:快速反转布尔值

Cap*_*rog 8 matlab boolean

有没有比以下更快的方式将"真或假"翻转到其相反的状态?

if x == true
 x = false;
else
 x = true;
end
Run Code Online (Sandbox Code Playgroud)

是的,也许只有五行代码没什么可担心的,但看起来更像这样的东西会很棒:

x = flip(x);
Run Code Online (Sandbox Code Playgroud)

Fra*_*urt 17

您可以执行以下操作:

x = ~x;
Run Code Online (Sandbox Code Playgroud)


gro*_*ler 6

你可以使用否定声明.我不记得它在matlab中是如何工作的,但我认为是这样的

x = ~x;
Run Code Online (Sandbox Code Playgroud)


Bob*_*ore 6

弗兰克的答案更好(使用〜),但我只想指出的条件有点多余.很容易忘记,因为你已经有一个布尔值,所以你不需要在条件中进行比较.所以你可以做到这一点......

if x
  x = false;
else
  x = true;
end
Run Code Online (Sandbox Code Playgroud)