MATLAB: What does the operator “~=” mean

Image Processing Toolboxnon-maximum suppression

max2 = @(x) max(max(x));
immax = nlfilter(im, [siz siz], max2);
im(im ~= immax) = 0;
result = im;
This is the code take from a non-maximum suppression function. What does the 3rd line mean? Why can we use "something(something) = 0;" as a statement?
Thank you.

Best Answer

something(somthing_else)=0; In MATLAB refers to logical indexing and assignment.
In this case somthing_else has to be logical (think boolean) and
im ~= immax
basically means values where those to are not equal will be true and the rest will be false. When that is followed by:
im(im ~= immax) = 0;
you are equating to zero all the values in im where the above condition is not satisfied.
you will find this information in the documentation under logical indexing.