DMUG-Archiv 2012

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Dynamische Variable in statische überführen

Hallo,

vielen Dank für die Diskussion und Erklärungen. Diese sind immer wieder sehr gut. Als user von Mathematica im engeren Sinne, bin ich immer wieder froh, etwas von den Tiefen zu erfahren, für die ich leider nur selten Zeit habe.
Ich hänge das Programm einmal an, das ich nun bis auf Details fertig geschrieben habe, auch auf die Gefahr hin, meine unsachgemäße Herangehensweise damit preis zu geben. Ich bin sicher, für das Programm gäbe es eine besser Lösung. Ich bin aber gerade auch deshalb immer wieder von Mathematica begeistert, dass es meine Dilettantismen großzügig übersieht.

Die dynamische Liste ist die mit den Koordinaten aus der LocatorPane, die noch weitere Infos enthält. Die Überführung in eine statische Liste findet im definierten "Execute"-Befehl statt, nun tatsächlich mit der simplen Zeile
tl1 = Extract[op2, {1}];
Das brauche ich, da ich Variablen aus der zuvor dynamischen Liste brauche, um weitere Befehle mit Parametern zu füttern - nämlich die im Execute-Befehl.

Das Programm kann die Evolution eines Gesteins simulieren. In "Add Process" können Prozesse ausgewählt und Parameter dafür definiert werden. In der LocatorPane können die Prozesse in der gewünschten Sequenz angeordnet werden. Schliesslich wird in "Execute & Evaluate Simulation" die gesamte Sequenz durchgerechnet. Diese kann jedoch aber immer wieder neu sortiert werden, es muss dann eben wieder "exected" werden. Der "Time Traveller" erlaubt durch die Sequenz zu fahren und es wird die chemische Entwicklung des Gesteins angezeigt.
(Ein paar Variablen fehlen noch, damit es endgültig realistisch wird, und die Zeitachse muss man für diese Art Evolution an sich verlängern - aber das sind programmtechnische Kleinigkeiten. )

 besten Gruß,  Dominik

<<attachment: Process-Sequence.nb>>


____________
Dominik Hezel
Institut für Geologie und Mineralogie
Universität zu Köln
Greinstr. 4-6
Gebäude 902
50939 Köln
0049 221 470 6694





On 1 Mar 2012, at 11:40, Nowak Robert wrote:

Hallo Udo und Freunde der italienischen Oper

Dynamic[{{a, "tst1"}, {c, "tst2"}}] // ## & @@ # & (* für cryptologen
und rätselfreunde *)

Nicht für Cryptologen, für Freunde syntaktischen Zuckers eher, denn

In[3]:= Dynamic[{{a,"tst1"},{c,"tst2"}}] // ## &
Out[3]= {{a,tst1},{c,tst2}}



Na ja, man beachte aber das aus welchen mysteriösen Grund auch immer der
Head Dynamic erhalten bleibt

In[4]:= Dynamic[{{a,"tst1"},{c,"tst2"}}]//##&
%//Head
Out[4]= {{a,tst1},{c,tst2}}
Out[5]= Dynamic

wohingegen diese Version in wunschgemäß weg- Apply -ed

In[6]:= Dynamic[{{a,"tst1"},{c,"tst2"}}]//##&@@#&
%//Head
Out[6]= {{a,tst1},{c,tst2}}
Out[7]= List


ergibt

womit erst der Zucker das Leben versüßt in dem er den Dynamic Head
abschlägt..

denn die Lösung wäre schlicht

staticList = Identity @@ tl

ja, hübsch, aber nur für den Fall eines einzigen Paramters wie im
Beispiel aber man will ja immer universell und allgemein bleiben.
btw wird mir für immer ein Rätsel bleiben warum  Identity nur einen
Paramter zu verdauen willig ist, wäre doch eine großartiges Feature
Update für Version 8.5

Man finde den längsten syntaktischen Zucker,
d.h. einen möglichst langen syntaktisch korrekten Ausdruck,
der das Ergebnis nicht verändert.

Nein, man finde doch bitte den kürzesten Ausdruck der das, womöglich
auch noch generalisierte, Gewünschte liefert.


LG Robert



--
DI (FH) Robert Nowak
IMS Nanofabrication AG
Austria, 1020 Wien, Schreygasse 3
Phone: +43 1 2144894-32
Fax:   +43 1 2144894-99
mailto:robert.nowak@XXXXXXX.at
http://www.ims.co.at

<Robert_Nowak.vcf>

Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html