DMUG-Archiv 2006

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: kleine Frage zu Map[]

At 23:37 15.01.06 +0100, Martin Heimann wrote:

Hallo!

ich möchte eine Funktion f[z_List] welche als Argument eine 1-d Liste nimmt auf die n-te Spalte einer Matrix M anwenden, die anderen Spalten jedoch unverändert lassen. Ich kann natürlich die n-te Spalte extrahieren, die Funktion darauf anwenden und dann die Matrix wieder zusammensetzen. Aber geht dies nicht irgendwie mit Map eleganter?

Transformieren Sie die Matrix, so dass die Spalten zu Zeilen werden, und arbeiten Sie mit MapAt, Beispiel:

(mat = Array[x, {4, 8}])//MatrixForm
(* MapAt[f,Transpose[mat],n], z.B. n = 3. Spalte *)
MapAt[f,Transpose[mat],3]

Was Sie allerdings meinen mit Zusammensetzen, das verstehe ich nicht. Um wieder eine Matrix zu erhalten, muss f:D^d -> R^d (D= Definitionsbereich und R = Bildbereich) sein, sonst erhalten Sie in der n-ten Zeile die Anzahl der Werte, die f "ausspuckt".

Hat Definitionsbereich und Bildbereich von f die gleiche Dimension, geht auch
mat[[All,n]]=f[mat[[All,n]]];
sonst wird halt in jede Zeilenposition der Spalte n der gleiche Wert von f dieser Spalte gesetzt.

Mit freundlichen Gruessen
Harald v. Aschen

Antworten:
Re: kleine Frage zu Map[]
Martin Heimann, 16.01.2006
Verweise:
kleine Frage zu Map[]
Martin Heimann, 16.01.2006

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 16.01.2006 16:30