Re: Fast matrices comparison
- To: mathgroup at smc.vnet.net
- Subject: [mg115934] Re: Fast matrices comparison
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Wed, 26 Jan 2011 05:06:17 -0500 (EST)
On 1/25/11 at 4:19 AM, wateronwildfire at gmail.com (JJ) wrote:
>I have to compare two big matrices (in the SparseArray form), say m1
>and m2. I need that the elements of m1 will be replaced by 0 if they
>are less or equal to the corresponding elements of m2.
>For example, if m1={{8,7},{3,9}} and m2={{2,3},{4,5}}, I would like
>to have m1={{8,7},{0,9}} because m1[[2,1]]<m2[[2,1]].
>I can do it easily with two nested for loops but I think it is not
>an efficient way to do it. I was wondering if somebody knows how to
>do it using a fast conditional replacement rule and/or pure
>functions.
Here is one way to do what you want that does not use any
explicit loops and should be fairly fast:
In[6]:= Unitize[Sign[m1 - m2] + 1] m1
Out[6]= {{8, 7}, {0, 9}}