Hallo zurück,
oh Gott, ich danke dir für alle Informatiker dieser Welt.
Der Hinweis
phi[param_List]:= ...
hat mir sehr geholfen, vielen Dank. Vielleicht kann ich mich ja mal
revangieren.
Die übrigen Kommentare werde ich mir aber auch sehr zu Herzen nehmen.
gruss
dirk
Jens-Peer Kuska schrieb:
Hallo,
oh Gott, das Grauen hat ja so viele Gesichter.
Du willst eine Funktion phi[] definieren, die als Argument
eine Liste hat, und die Teile dieser Liste in einen Ausdruck
einsetzen. Also
phi[param_List]:= (* ist schon mal die Funktion mit der Liste als
Argument *)
param[[1]] + (1 + param[[4]])*(Cos[param[[3]]] Cos[param[[2]]])
und param[[i]] extrahiert die Teile (Part[])
Ansonsten ist ein Funktionsaufruf phi[] etwas ganz ganz anderes, als ein
indizierter Zugriff param[[i]], es sei den man kann bloss FORTRAN
und hat einen alten Lochkarten-Stanzer.
Selbst dann sollte man aber den semantischen Unterschied kennen ...
Ausserdem w"are
phi[param_List]:=Module[{p1,p2,p3,p4},
{p1,p2,p3,p3}=param;
p1 + (1 + p4)*(Cos[p3] Cos[p2])
]
viel leichter zu lesen, weil f"ur n<4 phi[] eh nicht funktioniert
von
phi[p1_,p2_,p3_,p4_]:=p1 + (1 + p4)*(Cos[p3] Cos[p2])
phi[param_List] /; Length[param]===4 :=phi @@ param
mal ganz zu schweigen.
Gruss
Jens
Dirk Eling wrote:
Guten Tag allerseits,
ich versuche Funktionen zu definieren, die von n Parametern abhängen,
wobei n die Anzahl von Elementem einer Liste beschreibt. Wende ich die
Funktion auf einen allgemein definierten Array an, liefert Mathematica
das gewünschte Ergebnis. Wende ich die Funktion hingegen auf eine Liste
von Zahlen an, nicht (siehe angehängtes notebook). Kann mir vielleicht
jemand den richtigen Hinweis geben?
Vielen Dank schon mal.
gruss
dirk
------------------------------------------------------------------------
Name: parameter.nb
parameter.nb Type: application/mathematica
Encoding: base64