Hallo Gerd,
Zitat:Zitat:Was ist daran falsch und wie kann man das lösen?
Das sagt doch die Fehlermeldung: falscher Datentyp! (Die Funktion erwartet ein 1D-Array, du bietest aber nur 2D-Arrays an…)
Ich habe nicht verstanden, warum das ein 2D-Array sein sollte, den ich da anbiete. Denn schließlich ist es einfach nur die Position als Double. Jedenfalls habe ich diesen Double jetzt einfach mit "Array erstellen" in ein passendes Array umgewandelt und es funktioniert bzw. wird kein Fehler angezeigt.
Zitat:Zitat:Auch frage ich mich, warum der Intensitätsgraph nur einen Eingang hat. Woher kennt er da die X-und Y-Werte?
Der Graph zeigt ein 2D-Array an: jetzt überlege mal…
(Das siehst du doch in Christian Altenbachs Beispiel…)
Ja, ein 2D-Array wird angezeigt und dann die normierte Intensität. Allerdings sehe ich das bei mir noch nicht, weil ich eigentlich gar kein 2D-Array damit verbinde. Deswegen habe ich mich gefragt, wie die Zuordnung da vonstatten gehen soll. Das ist einfach die Zählrate, die als Int32 an vierter Stelle des Arrays, das in den CSV-File geschrieben wird, steht. Also bei jeder Iteration wird ja ein Array erstellt, das dann einfach untereinander in das File geschrieben wird.
Und jetzt soll das Visualisieren genau mit diesen Daten stattfinden. Also mit den Doubles für die X- und Y-Position und der Int32 für die Zählrate, die ich bei jeder Iteration bekomme und die bei jeder Iteration in das File geschrieben werden.
Für den 3D-Graph habe ich jetzt sowohl X-Wert als auch Y-Wert mittels Array erstellen an X-Vektor und Y-Vektor verbunden. Allerdings sind da ja pro Iteration nur ein Wert für X und Y. Also im Endeffekt ein Skalar und kein Vektor. Das heißt ja, dass ich dann am Ende nur einen Punkt im 3D-Graph sehen würde? Oder werden die entsprechenden Werte für X und Y quasi "gespeichert"? Und für die z-Matrix der Funktion "3D-Graph" besteht das gleiche Problem wie beim Intensitätsgraphen. Im Endeffekt handelt es sich nicht um eine Matrix, sondern einfach um einen Skalar. Allerdings würde das beim 3D-Graphen ja Sinn machen: Für jede Iteration erhalt ich einen X-,Y- und Z-Wert. Mehr brauche ich für die Zuordnung ja nicht, wenn das denn alles "gespeichert" bleibt.
Aus diesem Grund kam mir auch komisch vor, dass der Intensitätsgraph "nur" einen 2D-Array als Eingang hat. Und angenommen man gibt dem Intensitätsgraphen einen passenden 2D-Array, wie kann man dann die Position erkennen? Die Zuordnung findet dann ja nur über die ij.-Komponente der Matrix statt? Da bräuchte ich für die entsprechende ij.-Komponente ja weitere Brechnungen, um die "wirkliche" Position zu sehen.
Also die Zuordnungen habe ich noch nicht ganz geblickt
![Huh Huh](images/smilies/lvfsmilies/fun/huh.gif)
Vermutlich muss ich dann diese entsprechenden Werte bei jeder Iteration in einen X-Vektor, einen Y-Vektor und in eine Matrix speichern und diese dann am Ende mit den Graphen verbinden? Aber wie kann ich die Werte dann in richtiger Weise speichern?
Hier sieht man den aktuellen Stand der Dinge. Vielleicht ist es so verständlicher, was ich meine.
Zitat:Zitat:Und wie kann ich sowohl Intensitätsgraph als auch den 3D-Graph als Bilddatei speichern?
Per Propertynode/Methode das Bild lesen und als Bilddatei speichern…
Perfekt. Das scheint zu funktionieren. Allerdings habe ich noch eine Frage. Oben im Bild sieht man ja bei "3D-Surface - Bild in Datei", dass der "Ziel-Eingang" noch nicht verbunden ist. Leider finde ich da nichts zu, aber es muss verbunden werden, weil es sonst als Fehlermeldung angezeigt wird. Aber womit?
Zitat:Zu deiner Frage bzgl. Zeitmessung: Zeitpunkt vor dem Codeabschnitt bestimmen, Code ausführen, erneut Zeitpunkt bestimmen. Dann die Differenz beider Zeitpunkte
Daran kümmer ich mich, nachdem das Visualisieren funktioniert :-)
Vielen Dank!