1

I have the next matrix (Dimensions: {178, 178, 3}):

{{-1.22,2.44,3.14},{1.22,0.54,0.01},{1.21,-0.14,-2.31},{0.21,1.24,-0.42},...,{1.24,-0.25,1.34},{3.14,-3.14,-2.89}}

I want to add some quantity to each negative number of the matrix. Is it possible do that with control strucuture in Mathematica? How can I do it? thnk!

Gee45
  • 75
  • 4

2 Answers2

4

Say mat is your matrix and val is the number you wish to add to all the negative values:

mat - val Clip[Sign[mat], {-1, 0}]

Another similar method:

mat + val (1 - UnitStep[mat])
bill s
  • 68,936
  • 4
  • 101
  • 191
2

This operation is pretty easy to do in Matheamtica. Let mat be your matrix and val your value. The you simply do

mat/. {x_ /; Negative[x] :> x + val}

If you want me to explain it just ask.

meneken17
  • 500
  • 2
  • 8
  • The problem with this is that it won't work if the elements are symbolic expressions rather than numbers. How could that be modified to make it work in that case as well? – usumdelphini Jan 10 '19 at 15:13