DMUG-Archiv 2005

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

Re: Länge einer IntervalUnion (eines Intervals)

At 09:32 29.04.05 +0200, you wrote:

Hallo!

(#[[2]] - #[[1]]) &[(Plus @@ Interval[{3, 6}, {7, 26}, {29, 30}])]

Was macht das Teil?

@@ ersetzt den Kopf "Interval" durch "Plus" (Addition). (In der englischen Hilfe "Head".) (Rechnung selbst ist Assoziativgesetz und Kommutativgesetz der Addition). Dann kriegen wir, da Plus auf Listen anwendbar ist, raus

In[1] := Plus @@ Interval[{3, 6}, {7, 26}, {29, 30}])
Out[1] = {39,62}

Jetzt müssen wir nur noch 39 von 62 abziehen. Man greift auf Listenelemente mit [[Nummer]] zu, also {39,62}[[1]] ergibt 39. Jetzt kann man eine "Pure Function" anwenden, um nicht eine Zwischenfunktion definieren zu müssen. Das geht mit (#[[2]]-#[[1]])&. Das ist gleich einer Definition wie etwa f[x_List] := x[[2]]-x[[1]]. (Das ":=" bedeutet, daß Mma das nicht sofort auswertet.) Wenn ich jetzt f nicht definieren will, so mache ich daraus eine Pure-Function. # = Slot = Argument (siehe Hilfe), mit & wendet man die Funktion an. Also ist äquivalent f[{39,62}] zu (#[[2]]-#[[1]])&[{39,62}].

Es gibt ja ziemlich gute Bücher zu Mathematica, vielleicht als nette Einstiegsempfehlung: Die neuen Guidebooks von Michael Trott, fand ich z.B. sehr schön für eine sanfte Einführung (hier "The Mathematica GuideBook for Programming", siehe http://www.mathematicaguidebooks.org).

Viele Gruesse, Harald


Liebe Kollegen,

ich habe folgendes Problem in Mathematica: ich würde gerne die Länge
einer IntervalUnion berechnen lassen. Als Ergebnis einer IntervalUnion
bekommt man bekanntlich ein Resultat wie etwa: Interval[{3, 6}, {7, 26},
{29, 30}]. Ich würde nun gerne die Differenzen der Einzelintervalle
berechnen und am besten gleich noch summieren lassen; also:
(6-3)+(26-7)+(30-29). Ich habe keine Ahnung, wie das machbar ist. Ich
habe auch in den Referenzen nichts gefunden. Meine Mathematica-Erfahrung
ist auch noch sehr rudimentär. Für Hilfe wäre ich sehr dankbar.

   Herzlichen Gruß,

     Dominik Hezel

_________________
Dr. Dominik Hezel
Institut für Geologie und Mineralogie
der Universität zu Köln
Zülpicherstr. 49b
50674 Köln
Tel.: +49 (0221) 470-3197
e-mail: d.hezel@XXXXXXX.de

http://www.cosmochemistry.org



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

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