DMUG-Archiv 2006

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

Re: Antwort: Re: Indizierung von Tables mit Null beginnen.

Hallo Richard,

das kann man mit einer weiteren Zeile auf n-dimensionale Tabellen (Tensoren n-ter Stufe) erweitern

In[67]:= Unprotect[Part]
            Clear[Part]
            Part /: Part[x_List, n_Integer] := First[RotateLeft[x, n]]
Part /: Part[x_List, n__Integer] := Fold[Part, x, {n}] /; Length[{n}] > 1
            Protect[Part]
Out[67]= {Part}
Out[71]= {Part}

Probieren wir eine dreidimensionale Tabelle (Tensor 3-ter Stufe) b:

In[74]:= Clear[b]
b = Table[100 i + 10 j + k, {i, 1, 5}, {j, 1, 4}, {k, 1, 7}]
Out[75]={{{111,112,113,114,115,116,117},{121,122,123,124,125,126,127},
{131,132,133,134,135,136,137},{141,142,143,144,145,146,147}}, {{211,212,213,214,215,216,217},{221,222,223,224,225,226,227}, {231,232,233,234,235,236,237},{241,242,243,244,245,246,247}},
              {{311,312,313,314,315,316,317},{321,322,323,324,325,326,327},
{331,332,333,334,335,336,337},{341,342,343,344,345,346,347}},
              {{411,412,413,414,415,416,417},{421,422,423,424,425,426,427},
{431,432,433,434,435,436,437},{441,442,443,444,445,446,447}},
              {{511,512,513,514,515,516,517},{521,522,523,524,525,526,527},
{531,532,533,534, 535,536,537},{541,542,543,544,545,546,547}}}

In[76]:= b[[0]][[0]][[0]]
Out[76]= 111

Die andere Form von Part, mit einer Sequence von Positionen, liefert das erste Element nullbasiert

In[77]:=  b[[0, 0, 0]]
Out[77]= 111

das letzte Elemtent steht auf i = 5, j = 4, k = 7 einsbasiert, also i = 4, j = 3, k = 6 nullbasiert

In[78]:=  b[[4]][[3]][[6]]
Out[78]= 547

In[79]:=  b[[4, 3, 6]]
Out[79]= 547

Gruss
Udo.


Richard Gollreiter wrote:

Hallo Udo,

kannst Du diese elegante Lösung auch auf zwei-dimensionale Tabellen
erweitern?

Gruß
Richard
------------------------------------------------------------------






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

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