Hallo Jens,
um ein wengig spitzfindisch zu sein :
> Ausserdem ist a[[1]] oder was auch immer kein *Element* einer Tabelle, sondern ein Funktionsaufruf an die Funktion
> Part[].
> lst = Table[i, {i, 4}];
lst ist doch zweifelsohne eine Matematica List (im Klartext: Liste, Tabelle, Arrray, Feld, Vektor, etc. ja ja die
babylonische sprachverwirrung)
und sowohl Part[lst, i] als auch lst[[i]] liefern sehr wohl ein Element dieser lst benannten Matematica List; technisch
mag das durch einen Funktionsaufruf wie fast alles in Matematica erfolgen.
grüsse robert
-----Original Message-----
From: Jens-Peer Kuska [mailto:kuska@XXXXXXX.de]
Sent: Thursday, January 29, 2004 5:43 PM
To: RGollreiter@XXXXXXX.de
Cc: Deutsche Mathematica News Group
Subject: Re: symbolic computation
Hallo,
nein das ist auch v"ollig unn"otig denn man kann ja
a[1]+a[2] schreiben. Will man dann Elemente eines
einer Liste tatsachlich verwenden sollte
lst = Table[i, {i, 4}];
a[1]+a[2] /. a[i_] :> lst[[i]]
wohl helfen.
Ausserdem ist a[[1]] oder was auch immer kein *Element* einer Tabelle, sondern ein Funktionsaufruf an die Funktion
Part[].
Damit eine Funktion nicht ausgewertet wird muss man Hold[] verwenden und
expr=Hold[a[[1]]] + Hold[a[[2]]]
arbeitet auch ohne Fehler.
Mit
Block[{a={x^2,z}},
ReleaseHold[expr]
]
kann man dann die Elemente einsetzen.
Gruss
Jens
RGollreiter@XXXXXXX.de wrote:
>
> Hallo Demug,
>
> gibt es eine Möglichkeit mit Elementen einer Tabelle als symbolische
> Variablen zu arbeiten, ohne folgende Fehlermeldung zu erhalten:
>
> In[1]:= a[[1]]+a[[2]]
>
> Part::partd: Part specification a[[1]] is longer than depth of object.
> Part::partd: Part specification a[[2]] is longer than depth of
> object.
>
> Out[2]= a[[1]]+a[[2]]
>
> Mit freundlichen Gruessen
>
> Richard Gollreiter