DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: ich versteh's mal wieder nicht

"Martin Hammer" <HAMMER@XXXXXXX.de> wrote:
> Libe Mathematica-Freunde,
> 
> ein sicher triviales Problem:
> 
> In[5]:=
> A={{1,2},{3,4}}
> Out[5]=
> {{1,2},{3,4}}
> In[6]:=
> A[[i,j]]/.i->1/.j->2
> Part::"pspec": 
>     "Part specification i is neither an integer nor a list of 
> integers."
> Part::"pspec": 
>     "Part specification j is neither an integer nor a list of 
> integers."
> Out[6]=
> 2
> 
> Woher kommt diese Fehlermeldung? Sie stoert zwar in diesem Beispiel nicht, wenn 
> ich aber ueber Funktionen von Matrixelementen summieren will versucht Mma 3.0 
> stets, statt des Elementes die ganze Matrix in die Funktion einzusetzen.
> 
> Gruss Martin

Mathematica evaluiert, salopp gesagt, von innen nach aussen.
Die Einzelheiten sind im Kapitel A.4 des Mathematica Buches
deutlich erklaert.

Schaut man sich z.B.  A[[i,j]]/.i->1/.j->2  in der FullForm an

In[6]:= FullForm[HoldForm[ A[[i,j]]/.i->1/.j->2 ]]

Out[6]//FullForm= 
 
>   HoldForm[ReplaceAll[ReplaceAll[Part[A, i, j], Rule[i, 1]], Rule[j, 2]]]

dann wird klar, dass erst Part[A,i,j]  (d.h. A[[i,j]]) evaluiert 
wird, was zur ersten Fehlermeldung fuehrt:

In[11]:=  A[[i,j]]

Part::pspec: Part specification i
     is neither an integer nor a list of integers.

Out[11]= {{1, 2}, {3, 4}}[[i,j]]

Analog dann die zweite Fehlermeldung.

MfG,
        Rolf 



Rolf Mertig
Mertig Research & Consulting  
Mathematica training and programming
Development and distribution of FeynCalc 
Amsterdam, The Netherlands
http://www.mertig.com  


Verweise:
ich versteh's mal wieder nicht
Martin Hammer, 14.05.1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44