DMUG-Archiv 2005

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

Re(Woysch): Länge einer IntervalUnion (eines Intervals)

Stuttgart, den 3. Mai 2005

Sehr geehrter Herr von Aschen,

vielen Dank, dass Sie einmal die Konstruktion einer solchen 
Funktion schrittweise und recht verstaendlich erklaert haben !

Es waere erfreulich, wenn man das oefter so machen wuerde, denn 
sehr oft sind die Anfragen ja Fragen von Anfaengern, die 
Erklaerungen mehr als noetig brauchen koennen - vor allem, wenn 
sie selbst darauf hinweisen !

Mit freundlichen Gruessen,

Gunter Woysch

------

> Date: Sun, 01 May 2005 21:41:57 +0200
> To: "Dominik Hezel" <d.hezel@XXXXXXX.de>, 
<demug@XXXXXXX.ch>
> From: Harald von Aschen <harald.von.aschen@XXXXXXX.de>
> Subject: 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