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

Abstand Surf zu Messpunkten bzw Graph darstellen

 

maleme92
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 01.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2016, 10:13     Titel: Abstand Surf zu Messpunkten bzw Graph darstellen
  Antworten mit Zitat      
Hey,
ich habe ein Problem. Und zwar habe ich eine Fläche im Raum (surf) und dazugehörige Messpunkte, die einen gewissen Abstand zu der Fläche haben. Nun würde ich gern den Abstand zwischen den Punkten und der Fläche darstellen.
Zum Beispiel, in dem ich die Punkte unterschieldich einfärbe und eine Skala bzw Legende daneben lege.

Wie ist das in Matlab umzusetzen? Die einzelnen Abstände habe ich bereits berechnet und können den Punkten auch zugeordnet werden.


Oder hat jemand noch andere Ideen, wie man so etwas darstellen könnte?

Danke

bild.JPG
 Beschreibung:

Download
 Dateiname:  bild.JPG
 Dateigröße:  166.05 KB
 Heruntergeladen:  298 mal
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.03.2016, 11:33     Titel:
  Antworten mit Zitat      
Hallo,

hier findest du die Chart surface properties. Die Darstellung der Punkte/Koordinaten ließe sich mit den Marker properties verändern. Aber diese settings gelten dann für alle Punkte. Wie du jeden Punkt einzeln einfärben kannst, weiß ich allerdings nicht.

Was haben aber die Punkte in den Bild mit den Punkten/Koordinaten zu tun, aus denen die Fläche mittels surf erstellt wird?

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
maleme92
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 01.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2016, 11:42     Titel:
  Antworten mit Zitat      
Danke schonmal,

ich habe aus den Messdaten mit verschiedenen Approximation und mathematischen Verfahren diese Fläche erzeugt.
Um das Verfahren zu bewerten habe ich die Abstände der Punkte bestimmt.
Und ja, wie gesagt, den Abstand würde ich gern den einzelnen Punkten hinterlegen und diese einfärben.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.03.2016, 11:52     Titel:
  Antworten mit Zitat      
Das hilft mir nicht wirklich weiter.

Um surf zu nutzen brachst du x/y/z Koordinaten, aus denen surf dann die Fläche darstellt. Nun noch mal zu meiner Frage. Unterscheiden sich diese x/y/z Koordinaten der Fläche von den Punkten in dem Bild?

Wenn du die Darstellung der x/y/z Koordinaten ändern willst, geht das über das chart surface handle.

Code:

hSurf = surf(...)

% ändere Style der Punkte
set(hSurf,...
'Marker','.',...
'MarkerEdgeColor','r',...
'MarkerFaceColor','none',...
'MarkerSize',10);
 


Das ändert dann aber entsprechend dem Setting alle Punkte.
Private Nachricht senden Benutzer-Profile anzeigen
 
maleme92
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 01.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2016, 11:56     Titel:
  Antworten mit Zitat      
Die Fläche besteht aus x/y/z Werten, die über die das gesamte meshgrid in x-y erzeugt wurden.

Die Punkte bestehen auch aus x/y/z Werten. Dabei sind die x/y Werte der Punkte auch in dem meshgrid der Surf enthalten. Lediglich die z-Werte varrieren.
Der senkrechte Abstand der schwarzen Punkte zu der Surf soll dann farblich in den jeweiligen Punkten dargesstellt werden.

Zum Vorgehen: Ich habe zuerst mit dem meshgrid die Surf mit "surf(x,y,z)" erstellt und nachher die Punkte mit "plot3(x,y,z)" dazu geplotten.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.03.2016, 12:15     Titel:
  Antworten mit Zitat      
Zitat:
Zum Vorgehen: Ich habe zuerst mit dem meshgrid die Surf mit "surf(x,y,z)" erstellt und nachher die Punkte mit "plot3(x,y,z)" dazu geplotten.


Das war eigentlich schon alles was ich wissen wollte Wink

Hilft dir evtl. dieses Beispiel weiter?

Code:

[X,Y,Z] = peaks(25);

figure
axh = gca;
surf(axh,X,Y,Z);
colormap(axh,gray)
hold on
hLine = plot3(axh,X,Y,Z);
colormap(lines)

set(hLine,...
'LineStyle','none',...
'Marker','*',...
'MarkerFaceColor','none',...
'MarkerSize',10);
 


Hier werden allerdings alle Punkte einer Spalte in der selben Farbe dargestellt. Wenn wirklich jeder Punkt eine seperate Farbe haben soll, müssten die Punkte wohl auch einzeln per plot3 eingefügt werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
maleme92
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 01.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2016, 12:20     Titel:
  Antworten mit Zitat      
In dem Beispiel sind nur die einzelnen spalten in unterschieldichen Farben oder?
Wie übertrage ich das darauf, dass der gewisse Abstand meiner Punkte zu den Flächenpunkten in unterschiedlichen Fareben dargestellt wird.

Die Punkte von hline in deinem Beispiel haben also andere z-Werte als die Werte von Surf.
Bsp: großer Abstand roter Punkt, kleiner Abstand blau
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.03.2016, 12:37     Titel:
  Antworten mit Zitat      
Zitat:
In dem Beispiel sind nur die einzelnen spalten in unterschieldichen Farben oder?


Ja...hatte ich bereits geschrieben.

Zitat:
Wie übertrage ich das darauf, dass der gewisse Abstand meiner Punkte zu den Flächenpunkten in unterschiedlichen Fareben dargestellt wird.


Den wirst du selber definieren müssen. Dann wirst du wohl auch alle Punkte einzeln per plot3 einzeichnen müssen, denn sonst kann die Farbe nur spaltenweise zugewiesen werden.

Du müsstest also eine Einteilung der Distanzen machen und nun jedem Bereich eine Farbe zurordnen.

Code:

cmap = colormap(lines);
for i=1: AnzahlPunkte
    % Abstand Punkt -> Fläche ermitteln
    abstand = diff([Z_surf(i) Z_punkt(i)]);
    % Farbe nach Abstand zuordnen
    if abstand < 1
       color = cmap(1,:,:);
    elseif abstand >= 1 && abstand < 2
       color = cmap(2,:,:);
    % usw
    end
    % plot punkt
    plot3(axh,X(i),Y(i),Z_punkt(i),'LineStyle','none',...
                    'Marker','*',...
                    'MarkerFaceColor',color,...
                    'MarkerSize',10);
end
 


Zitat:
Die Punkte von hline in deinem Beispiel haben also andere z-Werte als die Werte von Surf.Bsp: großer Abstand roter Punkt, kleiner Abstand blau


Nein, ich verwende in dem Bsp. die selben z-Koordinaten.
Private Nachricht senden Benutzer-Profile anzeigen
 
maleme92
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 01.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2016, 12:53     Titel:
  Antworten mit Zitat      
Zitat:
Nein, ich verwende in dem Bsp. die selben z-Koordinaten.


Sorry, so meinte ich es auch;)

Vielen Dank, ich werde mal ein wenig rutüfteln. Hatte gehofft, dass es irgendetwas automatisches gibt, bei dem man das nur die Granzen des Farbverlaufs angeben muss.

Scheinbar leider nicht.

Trotzdem vielen Dank dir
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 - 2025 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.