Matlab为什么逻辑不是代字号`~`没有提到docs?

时间:2015-10-22 17:57:02

标签: matlab

我见过一些使用的代码:

index = findstr('something', 'longer string');
if ~isempty(index)
  % do something
end

我查了the documentation for MatLab symbols here并且没有提到使用~将原始整数值转换为布尔值的任何内容。即,如果index为10或[],则isempty将返回0或1,将使用~运算符将其转换为1或0。但是,文档中未提及此用例。这是否是进行否定的合法方式。还有另一种方法可以实现这种否定吗?

2 个答案:

答案 0 :(得分:2)

在工作区中,输入

120

doc not

您将从Matlab的文档中得到答案。

答案 1 :(得分:1)

这个用例 在文档中提到了链接指向的确切位置(请参阅“Tilde - 〜”下的“Not Equal To”和“Logical NOT”)。您也可以在MATLAB控制台中输入help ~并获得有关使用情况的说明。

这是 执行布尔值否定的合法方式。您可以将它应用于0和1来翻转它们,但它也会将任何非零值视为1。

执行x否定的另一种方法是x = 1 - x,但只有在x为布尔值时才有效。因此,对于您发布的代码,您可以这样做:

index = findstr('something', 'longer string');
if 1 - isempty(index)
  % do something
end