DMUG-Archiv 2010

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

Re: Sum[x[[i]]+a,{i,1,n}] => Sum[x[[i]],{i,1,n}]+a n

Hallo Peter,

Hallo, ist natürlich richtig, was Udo sagt, aber ganz so dogmatisch ist MMA auch wieder nicht:

f[5.3]=16.8
f[6.7]=7
f[x_]=x^2
f[2.3]
fl=Table[{z,f[z]},{z,2.1,7.8,0.1}];
ListPlot[fl,PlotRange->{{2.1,7.8},{0,50}},Filling->Axis,Frame->True]

Dieses Beispiel beschreibt eine Funktion f, nicht den Zugriff auf Elemente einer Liste oder allgemeiner eines Ausdrucks. f[6.7] = 7 kann selbstredend definiert werden. fl ist eine Liste von Tupeln, die Schrittweite ist 0.1, die Werte in der Liste fl sind auch keine ganzen Zahlen, aber weder
fl[[2.1]] noch f[[7.8]] existieren.

Mma ist beim Zugriff auf Teilausdrücke dogmatisch. Wahrscheinlich verlangt es sogar, dass die Teilausdrücke eines Ausdrucks abzählbar sind und dass die zum Zählen verwendete Menge (die Indexmenge) eine Wohlordnung besitzt. Anderenfalls wüsste man wieder nicht, was fl[[0]] sein soll.

Gruss
Udo.

MMA verlangt bei Evaluation von Part[] bzw. [[]] immer ein integer,
weiters muss das betreffende element bereits exixtieren.
Der tiefere Grund hierführ ??????

Ist diese Frage ernst gemeint? Es steht geschrieben

expr[[i]] or Part[expr, i] gives the i-th part of expr.

das bedeutet,
- dass nichtexistierende Teile eines Ausdrucks nicht abgerufen werden können (das ist recht praktisch, denn die nichtexistierenden Teile eines Ausdrucks _sind_ (dieses "sind" bedeutet genuines heideggern) sehr viel zahlreicher als die existierenden Teile) und - dass die (existierenden) Teile eines Ausdrucks mit 0 und den natürlichen Zahlen nummeriert werden.

Letzteres ist nicht zwingend, aber üblich auf Rechnern, z.B. die Sprache C gibt bei der Allozierung von 2 bytes eine Adresse void *p zurück, an der sich das erste erhaltene byte befindet. Das andere byte findet man unter p + 1, in einem Array ist p[0] das erste byte und p[1] das zweite.

Wenn man nicht genau weiss, welche Teilausdrücke man beziehen will, gibt es noch metaphysiche Funktionen wie Head[], First[], Rest[], Last[], Most[], All und None, sie erübrigen die Indizierung.

Nun können Sie wohl sagen

Range[19][[All]],

jedoch nicht

Range[19][[None]],

letzteres könnte im weitesten Sinne als

Welt \ Range[19] (* sprich: "Die Welt mit Ausnahme von Range[19]" *)

angesehen werden - da alle noch am Streiten sind, was "die Welt" ist, kommt zu Recht eine Fehlermeldung.

Gruss & Sorry
Udo.







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

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