This one of the things that has always bothered me about Matlab. I understand why arrays start at 1 and not at 0 like in any other programming language, but why is !=
~=
in Matlab?
views:
155answers:
5The tilde character (~) is generally used as the bitwise NOT operator.
As the ! character is reserved for an other usage (OS command), I guess it's not a bad choice.
In logic tilde can mean "not", which may be confusing as in math tilde can be "equivalence" or "approx". However, it is found on more keyboards than the less ambiguous ¬. Watch out, as tilde can also mean bitwise not :)
Why is .not..eq.
represented by ~=
? For the same reason that it is not represented as =!=
or /=
or any of the hundred and one other conventions used in programming languages.
And the twiddle, or ~
, is widely used in logic texts to mean NOT
.
IMO, the only answer to this question is that Cleve Moler and friends thought it better represented NOT
than !=
. Were they correct or not is up to individual opinion. MATLAB has a lot of other quirks that bother me a lot more than ~=
, like not allowing fall through in switch-case
statements and the default
case being named otherwise
.