WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zusammenfügen von zwei Figuren in Matlab

 

Dustin1607
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 11:52     Titel: Zusammenfügen von zwei Figuren in Matlab
  Antworten mit Zitat      
Moin liebe Matlab-Gemeinde,

zu dem oben genannten Titel gibt's zwar schon Themen, diese treffen allerdings nicht für mein Problem zu. Ich komme gerade nicht weiter.

Mein Problem: Ich habe zwei Figuren. Die Figur 1 stellt Koordinaten in Bezug auf einen Wert dar (Px und Py --> bezogen auf PPM). Die zweite Figur ist praktisch äquivalent dazu, allerdings mit anderen Koordinaten und einem anderen Wert (Rx und Ry --> bezogen auf ppn_sim).

Code:

[X,Y] = meshgrid(0:dimension);

figure(1)
subplot(2,2,1)
axis equal
ZI=griddata(Px,Py,PPM,X,Y,'linear');
imagesc(X(1,:),Y(:,1),ZI);
hold on
plot(Px,Py,'.k')
title('Gemessene Punkte')

figure(1)
subplot(2,2,2)
axis equal
ZII=griddata(Rx,Ry,ppn_sim,X,Y,'linear');
imagesc(X(1,:),Y(:,1),ZII);
hold on
plot(Rx,Ry,'.k')
title('Simulation')
 


Nun möchte ich eine dritte Figur erstellen, welche beide Figuren vereint (bzw. zusammenfügt) und komme derzeit nicht weiter. Ich habe zwei Ansätze bereits versucht. Der folgende Ansatz sieht zwar relativ schick als Ergebnis aus, scheint aber nicht alle Daten abzubilden.

Code:

figure (1)
subplot(2,2,3)
axis equal
ZI=griddata(Px,Py,PPM,X,Y,'linear');
imagesc(X(1,:),Y(:,1),ZI);
plot(Px,Py,'.k')
hold on
axis equal
ZII=griddata(Rx,Ry,ppn_sim,X,Y,'linear');
imagesc(X(1,:),Y(:,1),ZII);
plot(Rx,Ry,'.k')
title('Gesamtpunktwolke')
 


Der zweite Ansatz scheint bildet alle Punkte ab, allerdings fehlt die farbliche Darstellung von PPM bzw. ppn_sim.

Code:

figure (1)
subplot(2,2,4)
Messung = [Px Py PPM];
Simulation = [Rx Ry ppn_sim];
plot (Messung,Simulation,'.k');
title('Gesamtpunktwolke')
 


Ich wäre für einen Tipp (oder den Hinweis auf einen Fehler) sehr dankbar. Ist das Problem verständlich ausgedrückt?
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.07.2017, 12:25     Titel:
  Antworten mit Zitat      
Hallo

wie wäre es denn mit:


Code:

plot3 (Px, Py, PPM, '.k', Rx, Ry, ppn_sim, '.r');
title('Gesamtpunktwolke')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 12:40     Titel:
  Antworten mit Zitat      
Moin denny,

vielen Dank für deine schnelle Antwort. Damit komme ich meinem gewünschten Ziel etwas näher. Smile

Allerdings sollen die Punkte miteinander "verbunden" werden und die Farbe der PPM- bzw. ppn_sim-Werte soll von ihrem Wert abhängig sein. Hohe Werte sollen beispielsweise rot dargstellt werden. Die PPM- und ppn_sim-Werte müssen nicht zwangsläufig voneinander zu unterscheiden sein. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.07.2017, 12:46     Titel:
  Antworten mit Zitat      
Hallo dann würde für dich SCATTER/SCATTER3 -Funktion interessant
schau dir zuerst Hilfe zu der Funktion an

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 14:08     Titel:
  Antworten mit Zitat      
Die Funktion "scatter" hilft mir gerade nicht weiter - oder ich wende sie falsch an. Surprised Trotzdem vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 14:13     Titel:
  Antworten mit Zitat      
Ich glaube, ich habe eine Lösung. Momentan "zerschießt" mir Matlab allerdings noch die Achsen.

Code:

[X,Y] = meshgrid(0:dimension);

figure (1)
subplot(2,2,4)
axis equal
ZI=griddata(Px,Py,PPM,X,Y,'linear');
hold on
ZII=griddata(Rx,Ry,ppn_sim,X,Y,'linear');
imagesc(X(1,:),Y(:,1),ZI);
imagesc(X(1,:),Y(:,1),ZII);
plot(Px,Py,'.k')
plot(Rx,Ry,'.k')
title('Gesamtpunktwolke')
 


Sie ähnelt zwar sehr meinem ersten Ansatz (siehe oben), bildet allerdings alle Punkte ab. Nur das Achsenproblem muss ich scheinbar noch lösen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 14:36     Titel:
  Antworten mit Zitat      
Falscher Alarm - letztendlich bildet meine "Lösung" zwar alle Punkte ab, aber die Farbe der ppn_sim-Werte stimmt nicht. Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 14:50     Titel:
  Antworten mit Zitat      
Jetzt habe ich eine komplett andere Idee. Ich könnte doch auch meine Px, Py und zugehörigen PPM beispielsweise "auslesen". Gleiches mache ich mit meinen Rx, Ry und ppn_sim?! Die Variabeln füge ich zusammen und bilde sie anschließend ab?! Allerdings habe ich dabei das Problem, dass beispielsweise bei der Funktion "union" die jeweiligen Werte der größe Nach sortiert werden. Gibt's eine Alternative? Ich könnte natürlich auch "dlmwrite" nehmen. Allerdings müsste ich die ausgelesenen Daten dann per Hand zusammenfügen. Das wäre nicht der Sinn der Sache.

Ich entschuldige mich jetzt schon für meinen Monolog - ich denke gerade "laut". Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.07.2017, 15:05     Titel:
  Antworten mit Zitat      
Ich bin mir nicht sicher was du erreichen möchtest
Zitat:
Allerdings sollen die Punkte miteinander "verbunden"

was heißt das? zu einer Gruppe zusammengefasst werden?

Es soll nach wert von PPM und ppn_sim angefärbt werden, mit scatter z.B ginge es so
Code:

scatter3(Px, Py, PPM, 10, round(PPM))
hold on
scatter3(Rx, Ry, ppn_sim, 10, round(ppn_sim))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.07.2017, 15:10     Titel:
  Antworten mit Zitat      
Zitat:
Allerdings habe ich dabei das Problem, dass beispielsweise bei der Funktion "union" die jeweiligen Werte der größe Nach sortiert werden.


du kannst die Werte auch mit Eckigen klammern vereinen, muss nur an richtige Dimension anhängen, welche gleich sein muss
Code:

[Px; Rx]
[Py; Ry]
[PPM; ppn_sim]
 


edit: es gibt auch die Funktion CAT oder VERTCAT/HORZCAT
Code:

cat(1, Px, Rx)
vertcat(Px,Rx)
 


Zuletzt bearbeitet von denny am 21.07.2017, 16:12, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2017, 15:38     Titel:
  Antworten mit Zitat      
Zitat:
Ich bin mir nicht sicher was du erreichen möchtest


Im Anhang befindet sich meine Abbildung mit den Ergebnissen. Die Daten sollen "vermascht" sein - ich möchte nicht ausschließlich die Punkte, sondern ein "Drahtgitter" über meine Daten legen.

Zitat:
du kannst die Werte auch mit Eckigen klammern vereinen, muss nur an richtige Dimension anhängen, welche gleich sein muss


Ich danke dir für deine Hilfe. Für die Zusammenführung meiner Daten greife ich jetzt auf die Funktion "vertcat" zurück. In dem Zusammenhang lautet meine Lösung jetzt:

Code:
%Gesamtpunktmenge
Xges = vertcat(Px,Rx);
Yges = vertcat(Py,Ry);
PPMges = vertcat(PPM,ppn_sim);

%Gesamtpunktwolke
figure(1)
subplot(2,2,4)
axis equal
ZIII=griddata(Xges,Yges,PPMges,X,Y,'linear');
hold on
imagesc(X(1,:),Y(:,1),ZIII);
hold on
plot(Xges,Yges,'.k')
hold off
title('Gesamtpunktwolke')
 


Ich muss allerdings noch prüfen, ob die Werte tatsächlich richtig dargestellt werden. Auf den ersten Blick schaut's jedoch nicht schlecht aus.

Vorerst vielen Dank!

figure 1.png
 Beschreibung:

Download
 Dateiname:  figure 1.png
 Dateigröße:  26.64 KB
 Heruntergeladen:  276 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Dustin1607
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.07.2017, 09:24     Titel:
  Antworten mit Zitat      
Moin Moin,

hier noch einmal der leicht veränderte (bzw. verbesserte) Quellcode. Die Werte werden richtig dargestellt - das Problem ist also gelöst. Smile

Code:
%Gesamtpunktmenge
Xges = vertcat(Px,Rx);
Yges = vertcat(Py,Ry);
PPMges = vertcat(PPM,PPM_SIM);

%Gesamtpunktwolke
figure(1)
subplot(2,2,4)
ZIII=griddata(Xges,Yges,PPMges,X,Y,'linear');
hold on
imagesc(X(1,:),Y(:,1),ZIII);  axis image; axis xy;
hold on
plot(Xges,Yges,'.k')
hold off
colorbar;
title('Gesamtpunktwolke')
 


Ich wünsche allen einen angenehmen Start in die Woche! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.