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