我见过一些使用的代码:
index = findstr('something', 'longer string');
if ~isempty(index)
% do something
end
我查了the documentation for MatLab symbols here并且没有提到使用~
将原始整数值转换为布尔值的任何内容。即,如果index为10或[]
,则isempty
将返回0或1,将使用~
运算符将其转换为1或0。但是,文档中未提及此用例。这是否是进行否定的合法方式。还有另一种方法可以实现这种否定吗?
答案 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