www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - Darstellung import. Arrays
Darstellung import. Arrays < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Darstellung import. Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:07 So 06.06.2010
Autor: melvinj

Hallo,

ich muss zwei importierte Arrays in einem 3D Plot Diagramm darstellen. Hierbei soll das erste Array die normale 3D Oberfläche darstellen und zweite Matrix als Farbimage aufgelegt sein. Beide Arrays haben dieselben Dimensionen (z.B. 128x128 Bildpunkte), enthalten Fließkommazahlen und wurden mit einem Rasterkraftmikroskop aufgenommen. Die erste Matrix enthält die Höheninformationen der untersuchten Probe. Die zweite Matrix andere phys. Eigenschaften.
Mein eigentliches Problem liegt lediglich darin, die zweite Matrix farbcodiert auf die Oberflächenkonturen der ersten aufzulegen. Leider konnte ich diese Aufgabe noch nicht realisieren. Auch der "Colofunction" Befehl der Plot3D Funktion scheint da nicht weiter zu helfen.

Vielen Dank für Eure Hilfe

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Darstellung import. Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 10:20 Mo 07.06.2010
Autor: halirutan

Moin,

doch, die ColorFunction Option hilft dir weiter. Nehmen wir doch mal ein Beispiel und erzeugen uns eine Matrix mit Hoehenwerten und eine fuer die Farbgebung. In diesem Fall soll die Farbe die Richtung des Gradienten codieren:

1: f = Cos[x^2 + y^2] + 0.2 Sin[3 x];
2: {dfdx, dfdy} = D[f, #] & /@ {x, y};
3: {heights, col} = 
4:   Transpose[
5:    Table[{f, ArcTan[dfdx, dfdy]}, {y, -1, 1, 2/127.}, {x, -1, 1, 
6:      2/127.}], {3, 2, 1}];
7: {ListPlot3D[heights], ArrayPlot[col, ColorFunction -> Hue]}


[Dateianhang nicht öffentlich]

[Dateianhang nicht öffentlich]

Nun macht man Folgendes: zuerst interpoliert man die Matrix der Farbwerte, damit man die Werte an beliebigen (nicht notwendigerweise ganzahligen) Positionen abrufen kann. Dann musst du dir ueberlegen, wie du aus diesem einen Farbwert auch wirklich eine Farbe bekommst. Dazu koenntest du die "Gradients" der ColorData Funktion nehmen. Ich benutze hier mal nur den Farbwinkel des Hue-Farbraumes.

1:
2: colf = ListInterpolation[col];
3: ListPlot3D[heights, 
4:  ColorFunction -> Function[{x, y, z}, Hue[(colf[y, x] + Pi)/(2 Pi)]], 
5:  ColorFunctionScaling -> False]


[Dateianhang nicht öffentlich]

Aequivalentes Vorgehen sollten jetzt mit deinen Werten moeglich sein. Vielleicht noch 2 Tips, um allzu grosse Frustration zu verhindern:

- der Winkel des Gradienten ist durch den ArcTan immer im Intervall [-Pi,Pi] und muss zuerst auf das Intervall [0,1] gebracht werden, um ihn mit Hue zu benutzen. Bei den ColorData Gradienten ist das noch wichtiger; die wuerden den Wertebereich ausserhalb einfach abschneiden und du erhaelst unerwartete Ergebnisse.
- ColorFunction benutzt immer skalierte [0,1] Werte. Das ist, gerade wenns um die x und y Werte geht nicht immer gewuenscht und muss deshalb mit ColorFunctionScaling->False abgeschaltet werden.

Cheers
Patrick

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Anhang Nr. 2 (Typ: png) [nicht öffentlich]
Anhang Nr. 3 (Typ: png) [nicht öffentlich]
Bezug
                
Bezug
Darstellung import. Arrays: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:19 Mo 07.06.2010
Autor: melvinj

Vielen Dank für Deine Hilfe.

Ich glaube, so wird es funktionieren :-)

lg
melvinj

Bezug
                        
Bezug
Darstellung import. Arrays: Probleme bei Umsetzung
Status: (Frage) beantwortet Status 
Datum: 20:01 Mo 07.06.2010
Autor: melvinj

Hallo nochmal,

prinzipiell verstehe ich den Ansatz Deiner Hilfe. Mein Problem liegt jedoch darin, dass ich wohl zu dumm bin Deine Hilfe umzusetzen :-/

Wie bereits erwähnt, importiere ich quadratische Matratizen aus *.xls Files in Mathematica ein. Das erste Problem betrifft bereits die Darstellung der importierten Matrix mittels "ArrayPlot". Das macht die Funktion schlicht und einfach nicht. Es wird lediglich eine rote Linie geplottet?! Verwende ich die Funktion "ListDensityPlot", dann wird die Matrix korrekt dargestellt.

Das zweite Problem bezieht sich auf den Befehl "ListInterpolate[...]". Hier kommt stets die Fehlermeldung "Requested order is too high; order has been reduced to {0,3,3}." Ich schätze das hängt irgendwie mit der Dimension der Matrix zusammen. Versucht man die "InterpolationOrder" zu reduzieren, meldet Mathematica trotzdem Fehler, sofern man sie nicht manuell gleich 0 setzt.

Wenn ich anschließend versuche diese Matrix als ColorPlot in die ListPlot3D einzubinden (also so wie in Deinem Beispiel), dann hängt sich Mathematica auf. Vielleicht ist das eine Folge der misslungenen Interpolation. Vielleicht müsste ich die importierte Matrix zunächst irgendwie redimensionieren um die Fehlermeldungen zu vermeiden?

Nach dem importieren renormiere ich zunächst die Daten der Matrix so, dass nur noch Werte zwischen 0 und 1 vorkommen, sodass die Matrix kompatibel mit der Hue Operation sein müsste.

Vielleicht könntest Du mal selbst probieren zwei 128x128 Excel Tabellen mittels:

ColorMatrix = ToFileName["DateiPfad", "Matrix1.xls"];
HeightMatrix = ToFileName["DateiPfad", "Matrix2.xls"];

ColorArray = Import[ColorMatrix];
HeightArray = Import[HeightMatrixMatrix];

zu importieren um dann die Colormatrix im ListPlot3D als Colorsurface auf die Heightmatrix zu legen? Vielleicht finde ich auch selbst noch den Fehler.

Vielen Dank für Deine Hilfe.

lg
melvinj

Bezug
                                
Bezug
Darstellung import. Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 11:00 Di 08.06.2010
Autor: halirutan

Moin,

wenn du

Dimensions[ColorMatrix]
And @@ (NumericQ /@ Flatten[ColorMatrix])

machst, muesste

{128, 128}
True

rauskommen. Das muesste auch bei der HeightMatrix das Ergebnis sein.
Macht es das?

Cheers
Patrick

Bezug
                                        
Bezug
Darstellung import. Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:10 Di 08.06.2010
Autor: melvinj

Hallo,

danke für Deine Antwort.
Als OutPut kommt heraus:  "{True, 128True,128True}"

Die Darstellung der beiden Matrizen, entsprechend Deiner Hilfe, habe ich jetzt trotzdem hinbekommen.
Das Problem liegt darin, dass die importierten Matrizen eine äußere geschweifte Klammer zuviel aufweisen, also: {{{...},{...},...}}. Die äußersten Klammern sind überflüssig und hatten die Probleme verursacht. Wenn ich diese entferne funktioniert sowohl ArrayPlot als auch Interpolation und das Colormap Overlay im ListPlot3D.

Jetzt müsste ich nur wissen, wie man diese Klammern automatisiert gleich nach dem Import herausfiltern kann, damit eine manuelle Korrektur nicht notwendig ist. Da die Matrizen später noch größer werden und die Datenmaps schnell verarbeitet werden sollen, wäre die manuelle Korrektur etwas hinderlich.
Vielleicht sollte man aber schon beim Import selbst ansetzen. Ich könnte die Matrizen auch aus *.txt Files einlesen oder statt Matrizen nur eine fortlaufende Liste importieren, die dann in Mathematica automatisiert zur Matrix formatiert wird?! Geht das, oder hättest Du eine bessere Idee?

Danke für Deine Hilfe. Wenn dieses letzte Problem gelöst ist, das wäre ich dann vollends zufrieden :-)

Viele Grüße



Bezug
                                                
Bezug
Darstellung import. Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 17:38 Di 08.06.2010
Autor: halirutan

Moin,

wenn dem so ist, wie du sagst, dann sollte

data=First@Import[....]

funktionieren.

Cheers
Patrick

Bezug
                                                        
Bezug
Darstellung import. Arrays: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:11 Di 08.06.2010
Autor: melvinj

Jo,

genauso so ist es :-)

Vielen Dank nochmal für Deine Unterstützung

Viele Grüße

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de