Re: Problem with Which
- To: mathgroup at smc.vnet.net
- Subject: [mg74077] Re: Problem with Which
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 8 Mar 2007 04:44:35 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <eslsiq$q3v$1@smc.vnet.net>
Miguel wrote: > Let a function of six variable > AH[Ts_,Th_,Tr_,f_,w_,i_]:=( > Which[NumericQ[Ts]&&NumericQ[Th],tipo=1, > NumericQ[Ts]&&NumericQ[Tr],tipo=2, > NumericQ[Ts]&&NumericQ[f],tipo=3, > NumericQ[Ts]&&NumericQ[w],tipo=4, > NumericQ[Ts]&&NumericQ[i],tipo=5, > NumericQ[Th]&&NumericQ[Tr],tipo=6, > NumericQ[Th]&&NumericQ[f],tipo=7, > NumericQ[Th]&&NumericQ[w],tipo=8, > NumericQ[Th]&&NumericQ[i],tipo=9, > NumericQ[Tr]&&NumericQ[f],tipo=10, > NumericQ[Tr]&&NumericQ[w],tipo=11, > NumericQ[Tr]&&NumericQ[i],tipo=12, > NumericQ[f]&&NumericQ[w],tipo=13, > NumericQ[f]&&NumericQ[i],tipo=14, > NumericQ[w]&&NumericQ[i],tipo=15]; > tipo) > > In[77]:=AH[1,Th,Tr,f,4,i] > Out[77]= > 4 > Correct > > In[78]:=AH[1,Th,Tr,f,w,5] > Out[78]= > 4 > Wrong > > In[79]:=AH[Ts,Th,Tr,4,4,i] > Out[79]= > 13 > Correct > > In[80]:=AH[Ts,Th,Tr,4,w,5] > Out[80]= > 13 > Wrong > > I d'ont understand. Where is my error? As far as I can tell, the code is correct. However, you must still have in memory some conflicting and erroneous definitions. Starting with a fresh Mathematica session, here is what I get: In[1]:= AH[Ts_, Th_, Tr_, f_, w_, i_] := (Which[NumericQ[Ts] && NumericQ[Th], tipo = 1, NumericQ[Ts] && NumericQ[Tr], tipo = 2, NumericQ[Ts] && NumericQ[f], tipo = 3, NumericQ[Ts] && NumericQ[w], tipo = 4, NumericQ[Ts] && NumericQ[i], tipo = 5, NumericQ[Th] && NumericQ[Tr], tipo = 6, NumericQ[Th] && NumericQ[f], tipo = 7, NumericQ[Th] && NumericQ[w], tipo = 8, NumericQ[Th] && NumericQ[i], tipo = 9, NumericQ[Tr] && NumericQ[f], tipo = 10, NumericQ[Tr] && NumericQ[w], tipo = 11, NumericQ[Tr] && NumericQ[i], tipo = 12, NumericQ[f] && NumericQ[w], tipo = 13, NumericQ[f] && NumericQ[i], tipo = 14, NumericQ[w] && NumericQ[i], tipo = 15]; tipo) In[2]:= AH[1, Th, Tr, f, 4, i] Out[2]= 4 In[3]:= AH[1, Th, Tr, f, w, 5] Out[3]= 5 In[4]:= AH[Ts, Th, Tr, 4, 4, i] Out[4]= 13 In[5]:= AH[Ts, Th, Tr, 4, w, 5] Out[5]= 14 Regards, Jean-Marc