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

surf-plot zufällig verteilter messdaten

 

karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2013, 16:06     Titel: surf-plot zufällig verteilter messdaten
  Antworten mit Zitat      
Hallo,
vielen Dank an dieses Forum. Es hat mir schon oft aktiv oder passiv geholfen!

Mein Problem: Ich habe Abstandsdaten einer Reflexion auf einer Kugeloberfläche zur Mitte dieser Kugeloberfläche (x-/y-werte in Graden). Zusätzlich wird ein dritter Messwert (z) erfasst, der ensprechend den x/y-koordinanten in einem surface geplottet werden soll. Soll heißen: Auf einer runden Grundfläche sollen zufällig verteilte z-Werte dargestellt werden.

Ein Beispiel meiner Messwerte:
[list=]z-wert angh(x) angv(y)
1,332932629 -26,49354666 -6,333830062
1,34594642 -26,52775785 -6,289119036
1,14610307 -26,22704783 -7,846843091
1,176835769 -25,43588408 -4,595612934
1,430586959 -25,64855828 -4,734973168
1,601160573 -26,3315148 -3,8270895
1,451885481 -24,46189069 -4,747078999
1,515100647 -27,01498168 -5,799095242
[/list]

ich bin schon relativ weit gekommen:
ich erstelle ein rundes meshgrid und habe eine z-matrix mit nullen in die ich an den jeweiligen stellen den z-wert eintrage.
das problem: diese matrix hat wesentlich mehr elemente ("datenpunkte") als ich z-werte habe. somit stehen sehr viele nullen in dieser matrix. wenn ich nun plotte (surf) habe ich eine wunderschöne blaue/schwarze disk und meine eigentlichen messwerte sind kaum noch zu sehen.
wenn ich nun die nullen durch NaN ersetze, sieht man von den Messwerten auch nicht viel, da, verständlicherweise, nicht genug punkte für eine interpolation vorhanden sind.

zusätzlich habe ich das ganze auch mit einer triscatteredinterp versucht. das ergebnis scheint mir aber auch nicht richtig zu sein.
hat jemand eine idee, wie ich die ganze sache noch angehen könnte? vielen dank!

und zum schluss meinen code:
Code:
%alle z-werte > 20 werden eliminert
use.refh(use.refh > 20) = NaN;

%finde den kleinsten wert
x_min = floor(min(use.angh)*10);
y_min = floor(min(use.angv)*10);

%bestimmt die hable mindestgröße des grids
if x_min < y_min
    grid_min_size = abs(x_min);
else
    grid_min_size = abs(y_min);
end

%verschiebe die koordinaten der z-werte in die mitte des grids
x_coord = round(use.angh * 10) + abs(x_min);
y_coord = round(use.angv * 10) + abs(y_min);

%generiere spannvektoren des grids und die z-werte-matrix (zeros)
theta = linspace(0, 2 * pi, grid_min_size * 2);
rho = linspace(0, 40, grid_min_size * 2);
value = zeros(grid_min_size * 2, grid_min_size * 2, 'double');
[T, R] = meshgrid(theta,rho);

[X, Y, Z] = pol2cart(T, R, value);

%fülle die z-werte-matrix mit z-werten an den x/y-koordinaten
for j = 1 : numel(x_coord)
Z(x_coord(j), y_coord(j)) = use.refh(j);
end

subplot(1,2,1)
mesh(X, Y, Z);
surf(X, Y, Z, 'FaceColor','interp',   'EdgeColor','none',   'FaceLighting','phong')
colormap gray

F = TriScatteredInterp(use.angh, use.angv, use.refh);
qz = F(T, R);
subplot(1,2,2)
surfc(X, Y, qz, 'FaceColor','interp',   'EdgeColor','none');


und weil es so schön ist auch noch ein bild meines bisherigen erfolgs! links "normal", rechts mit "triscatteredinterp" ;o)

3dsurf.png
 Beschreibung:

Download
 Dateiname:  3dsurf.png
 Dateigröße:  80.87 KB
 Heruntergeladen:  484 mal


karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 08:50     Titel:
  Antworten mit Zitat      
weiß wirklich niemand einen rat?
ist irgendetwas nicht verständlich?
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.09.2013, 09:58     Titel:
  Antworten mit Zitat      
mir ist nicht ganz klar was die frage ist ^^
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 10:08     Titel:
  Antworten mit Zitat      
wie kann ich meine daten darstellen?
variante 1 ist doof, weil ich diese scheibe habe
variante 2 ist doof, weil keineswegs zu erkennen ist, wie die daten wirklich aussehen.

unterfrage: wie kann ich variante 1 verwirklichen, ohne diese scheibe zu haben. wenn ich nans statt ones/zeros verwende, habe ich zwar keine scheibe mehr, allerdings auch auch fast keine geplotteten daten mehr, da eben die matrix viel zu viele nans enthält.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.09.2013, 10:32     Titel:
  Antworten mit Zitat      
warum nimmst du n icht
Code:

mir ist nicht klar welche ansicht du gerne hättest. du meinst zwar das das nicht so hübsch aussiht aber wie soll es denn sein ? was meinst du mit
Zitat:
sieht man von den Messwerten auch nicht viel,
? wenn du nicht viele messwerte hast können es ja auch nicht mehr werden ^^
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 11:05     Titel:
  Antworten mit Zitat      
scatter3? das schau ich mir mal an! danke!

ich habe fast 4000 messwerte.
durch die interpolation bei
Code:
mit nans um meine messwerte, sind die mehr oder weniger weginterpoliert.

oder habe ich hier etwas total falsch verstanden?
 
karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 15:17     Titel:
  Antworten mit Zitat      
habe mir nun scatter3 einmal angeschaut.

das ist mehr oder weniger daselbe wie plot3, nur dass man spezifische farben und marker vergeben kann.

das wäre theoretisch eine lösung, allerdings auch nur die minimalistischste.
ich hätte schon gerne eine oberfläche...

gibt es andere möglichkeiten?
 
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.