What does the command A(~A) really do in matlab -


i looking find efficient way find non 0 minimum of matrix , found on forum :

let data matrix a.

a(~a) = nan; minnonzero = min(a); 

this short , efficient (at least in number of code lines) don't understand happens when this. can't find documentation since it's not operation on matrices +,-,\,... be.

could explain me or give me link or me understand done ? thank !

it uses logical indexing

~ in matlab not operator. when used on double array, finds elements equal zero. e.g.:

~[0 3 4 0] 

results in logical matrix

[1 0 0 1] 

i.e. it's quick way find 0 elements

so if a = [0 3 4 0] ~a = [1 0 0 1] a(~a) = a([1 0 0 1]). a([1 0 0 1]) uses logical indexing affect elements true in case element 1 , element 4.

finally a(~a) = nan replace elements in equal 0 nan min ignores , find smallest non-zero element.


Comments

Popular posts from this blog

image - ClassNotFoundException when add a prebuilt apk into system.img in android -

I need to import mysql 5.1 to 5.5? -

Java, Hibernate, MySQL - store UTC date-time -