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

3D plot von messwerten

 

mceuskadi
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 09.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2008, 10:42     Titel: 3D plot von messwerten
  Antworten mit Zitat      
Hallo,
ich habe das Problem das ich Messwerte habe und diese darstellen möchte. Es sind im Prinzip projezierte geographische Koordinaten also z.b.
x 1000
y 1000
z 0
Das ganze habe ich in einem Array gespeichert, also
punkte{}.x
punkte{}.y
punkte{}.z
Was ich will ist jetzt so zusagen die Erdoberfläche in diesem Ausschnitt darstellen. Sprich eine Oberfläche zwischen den Punkten interpolieren.

Wie kann man dies mit Matlab realisieren und gibt es eine angenehmere Art, um die Punkte zu speichern (ohne Array oder structure)?

mfg
Max
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 09.09.2008, 10:55     Titel:
  Antworten mit Zitat      
Hi,

kannst Du mal ein konkretes Beispiel geben?
Vielleicht guckst Du mal nach
Code:
.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
mceuskadi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 09.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2008, 11:03     Titel:
  Antworten mit Zitat      
nschlange hat Folgendes geschrieben:
Hi,

kannst Du mal ein konkretes Beispiel geben?
Vielleicht guckst Du mal nach
Code:
.

Das habe ich auch schon in deinem Beispiel/Tutorial gesehen. Mein Probel dabei ist, dass die z-Komponente keine Funktion von x,y ist, sondern auch ein gemessener Wert.
Also ich habe ein Set aus Messstationen mit Koordinaten (x,y,z)
Code:

z.B.
Station{1}.x = 10000
Station{1}.y = 20000
Station{1}.z = 50

Station{2}.x = 10230
Station{2}.y = 20350
Station{2}.z = 70
usw.
 

Diese würde ich gerne mittels einer Oberfläche mit einander verbinden
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 09.09.2008, 15:25     Titel:
  Antworten mit Zitat      
Hi,

Du könntest mit
Code:
p=[Station{:}];
x=[p.x]
y=[p.y]
z=[p.z]
die einzelnen Koordinaten-Vektoren erhalten und dann wie im Beispiel
Code:
benutzen, oder?
Sonst stell doch mal Beispieldaten rein damit man probieren kann.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
mieminger
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 21.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2008, 16:54     Titel:
  Antworten mit Zitat      
ich habe vor kurzem 3D Datensaetze geplottet und auch gefittet; allerdings mit einer parametrischen Funktion.
Das ganze sah dann etwa so aus.
Die Variablen waren
x: EGFP
y: mCherry
z: Complex
Kd wurde durch den Fit bestimmt.


Code:

[X,Y] = meshgrid(0:30:600, 0:70:1800);
Z=X.*Y./Kd;
mesh(X,Y,Z,'Facecolor','none');
title(['Kd = ',num2str(Kd), ' nM']);
hold on;
plot3(gfp,mcherry,Cross,'kh','MarkerSize',10);
xlabel('EGFP (nM)');
ylabel('mCherry (nM)');
zlabel('Complex (nM)');
hold off;
for k=1:360
view(k,45);
M(k)=getframe(gcf);
end
 


Code:


Kd0=1000;
gfp=gfp-Cross;
mcherry=mcherry-Cross;
data=cat(2,gfp,mcherry);
options = optimset('Display','iter','TolFun',1e-20,'TolX',1e-30,'LevenbergMarquardt','on','MaxFunEvals',200);
[Kd] = lsqcurvefit(@myfun, Kd0, data, Cross,10,300000,options);
clear data options Kd0
 

Sowie die Funktion mit der gefittet wurde.

Code:

function complex = myfun(Kd, data)
%Function to fit FCCS data in order to get Kd=[a]*[b]/[ab]
%Kd is obtained from fit.
gfp = data(:, 1);
mcherry = data(:, 2);
%% function complex=myfun(Kd, data)
%gfp=data(1, :);
%mcherry=data(2, :);
%Kd=gfp*mcherry/complex;
%complex*Kd=mcherry*egfp
complex = mcherry.*gfp./Kd;
 


Du willst aber scheinbar nur interpolieren; das sollte deutlich einfacher gehen.
Meine Prozedur fittet die Messwerte mit einer theoretische Formel und stellt dann die gefitttete Ebene und die Messwert dar.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.09.2008, 17:02     Titel:
  Antworten mit Zitat      
Hey mieminger,

hättest Du vielleicht Lust, Dein Beispiel lauffähig zu machen und in die Skript-Ecke zu stellen?
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2008, 11:53     Titel:
  Antworten mit Zitat      
Hallo!
Kann mir jemand helfen diese Werte darzustellen? Wenn sie dann noch durch eine Fläche verbunden wären wär ich überglücklich. Embarassed

x\y 67 216 358 104 284 478 141 500 843
0,508 2,50 3,80 5,20
0,77 4,20 6,80 9,20
1,39 6,70 10,80 16,50

im Prinzip soll das dann so in etwa werden wie auf dem Bild im Anhang

Neues Bild.JPG
 Beschreibung:

Download
 Dateiname:  Neues Bild.JPG
 Dateigröße:  443.14 KB
 Heruntergeladen:  596 mal
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2008, 12:00     Titel:
  Antworten mit Zitat      
Hallo!
Kann mir jemand helfen diese Werte darzustellen? Wenn sie dann noch durch eine Fläche verbunden wären wär ich überglücklich. Embarassed

x\y-------67---216--358---104---284---478----141---500----843
0,508---2,50--3,80-5,20
0,77-------------------------4,20--6,80--9,20
1,39-----------------------------------------------6,70--10,80--16,50

im Prinzip soll das dann so in etwa werden wie auf dem Bild im Anhang
 
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.