DMUG-Archiv 2003

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

Re: Pivot-Tabelle 2. Versuch

> Table[Funktion[zahl[factoren[[i]],bedingung[[j]] ], \\
> {i, 1, Length[factoren]},{j, 1, Length[bedingung]}]
> 
> Mir kommt dieses Vorgehen ein wenig wie Vergewaltigung vor; oder ist das 
>   die Lösung?

Es macht sicher keinen großen Unterschied, ob die Tabelle mit Table
oder mit Outer erzeugt wird.  Wenn man mehr als eine Funktion auf
die Tabelle anwenden möchte, würde ich aber erst die Tabelle anlegen
(mit Outer oder mit Table, aber ohne das "Funktion") und dann darauf
die Funktion anwenden, z.B. mit Map[Funktion, tabelle, {2}].

> Einen weiteren Punkt, der vieleicht oberflächlich oder auch nur 
> unwissend ist, betrifft die Reduktion auf die vorkommenden Faktoren und 
> Bedingungen. Thomas Hahn verwendet die Funktion
> 
>      faktoren = Apply[#1&, liste, 1]//Union
> 
> Ist dies gegenüber
> 
>      faktoren = Union[liste[[All, 1]] ]
> 
> aufgrund interner Mathematica-Abläufe für große Listen effizienter und 
> schneller oder einfach nur ein anderer gleichwertiger Lösungsweg?

In der Ausführungszeit dürften beide Version kaum voneinander
zu unterscheiden sein.  Man kann sowas aber einfach ausmessen, z.B.
mit Hilfe der Funktion

Attributes[tm] = {HoldAll}
 
tm[x_, n_:100000] := Timing[Table[x, {n}]][[1]]

d.h. man kann Apply[#1&, liste, 1]//Union//tm mit
Union[liste[[All, 1]] ]//tm vergleichen.


Gruß,

Thomas Hahn


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

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