MathGroup Archive 1996

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

Search the Archive

Re: Problem with If[] and %


Hans Steffani <hans.steffani at e-technik.tu-chemnitz.de> wrote:

Hi Hans,

> If[ i^2+v^2>15, 15, i^2+v^2]
> Plot3D[ %,{i,-5,5},{v,-5,5}]
> 
> does what I want. But i^2+v^2 is only an example for an
> other more complex function which is derived in the steps
> before.
> 
> Therefore I test
> 
> i^2+v^2
> If[ % >15,15,%]
> Plot3D[ %,{i,-5,5},{v,-5,5}]
> 
> Which only leads to several errors.

Look on the results you get:

In[1]:=  If[ i^2+v^2>15, 15, i^2+v^2]

Out[1]=      2    2            2    2
         If[i  + v  > 15, 15, i  + v ]

In[2]:=  i^2+v^2
Out[2]=   2    2
         i  + v

In[3]:=  If[ % >15,15,%]
Out[3]=  If[% > 15, 15, %]

You see here the problem. You don't get the result you want to have.


My solution would be to use a replacement rule:


In[3]:=  i^2+v^2
Out[3]=   2    2
         i  + v

In[4]:=  If[ q >15,15, q] /. q -> %
Out[4]=      2    2            2    2
         If[i  + v  > 15, 15, i  + v ]

In[5]:= Plot3D[ %,{i,-5,5},{v,-5,5}]

You should use insteat of q any not used symbol (or the replacement
would be wrong). The q is then replaced in your expression by the
preceding result.

Kind regards, Harald
-- 
Harald von Aschen
eMail: von_aschen at uni-duisburg.de


  • Prev by Date: How can I use different symbols to reperesent my 2D data?
  • Next by Date: Re: select a range of elements from a nested list
  • Previous by thread: Re: Problem with If[] and %
  • Next by thread: Integration of exp(-az)*sigma(t-to)*dz ??