MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Two questions about modification of a matrix.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101061] Re: Two questions about modification of a matrix.
  • From: Peter Breitfeld <phbrf at t-online.de>
  • Date: Tue, 23 Jun 2009 07:04:05 -0400 (EDT)
  • References: <h1nevg$8s9$1@smc.vnet.net>

Mayasky wrote:

> Suppose there is a N*N matrix.
>
> 1. How can I change all elements that satisfy i*j>N to 0 ? (Here i, j
> is position of this element, as in mat[[i,j]])
>
> 2. How can I change all negative elements in that matrix to 0 ?
>
> I know a "for loop" can be used, I just wonder if there is any more
> concise and beautiful ways. (I doubt Mathematica doesn't have a 'find'
> function as in another system which conveniently returns indice of elements
> that satisfy a certain condition)
>


Try this:

For your condition i*j>N:

A = Array[Subscript[a, ##] &, {4, 4}];
MapIndexed[If[Greater[Times @@ #2, 4], 0, #1] &, A, {2}] // MatrixForm

to replace negatives with 0:

(B = RandomInteger[{-5, 5}, {4, 4}]) // MatrixForm
Map[If[# < 0, 0, #] &, B, {2}] // MatrixForm

-- 
_________________________________________________________________
Peter Breitfeld, Bad Saulgau, Germany -- http://www.pBreitfeld.de


  • Prev by Date: Re: Putting an If in my function
  • Next by Date: FindInstance over Integers
  • Previous by thread: Re: Two questions about modification of a matrix.
  • Next by thread: Re: Two questions about modification of a matrix.