Упростите код matlab для переключения var - PullRequest
2 голосов
/ 19 декабря 2011

Интересно, есть ли более простое и приятное решение для переключения переменной между двумя значениями вместо (конечно, я могу написать m-функцию, но почему-то у меня возникает ощущение, что в matlab есть что-то встроенное, но я не смог найти это когда гуглится на matlab toggle)

if(x == 0)
  x = 1;
else
  x = 0;
end

спасибо

Ответы [ 4 ]

7 голосов
/ 19 декабря 2011

Оператор NOT:

x = ~x;

Если вы хотите переключиться между 0 и некоторым числом a:

x = (~x) * a;

Если вы хотите переключаться между a и b:

x = (~(x - a)) * (b - a) + a;
2 голосов
/ 19 декабря 2011

Может быть, просто x = 1 - x будет достаточно?

1 голос
/ 23 января 2014
x=1 % initialize the value
x=max([0  1]-x)   % toggle it
0 голосов
/ 19 декабря 2011

Я согласен с @rmmh, хотя я думаю, что лучше сначала привести его к логическому:

b = логический (x);
х = ~ х;

...