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.