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 Curve Fitting Fehlermeldung

 

breakzone
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 22.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2015, 15:15     Titel: 3D Curve Fitting Fehlermeldung
  Antworten mit Zitat      
Hallo!

Ich bin ein blutiger Matlab Anfänger und ich muss für ein Projekt einen 3 dimensionalen Pfad erstellen. Dazu habe ich eine Reihe von X, Y, Z Vektoren erstellt und den besagten Pfad durch einzelne Punkte beschrieben.

Bsp:
x=[ 0 0 3 4 5 5 5 8 8]
y=[0 1 1 1 7 8 8 8 8]
z=[3 3 3 7 5 2 3 4 5]

Durch diesen (oder ähnlichen) Pfad möchte ich gerne einen Interpolationsspline legen. Im Curve Fitting Tool Menü kommt allerdings die Fehlermeldung

Duplicate x-y data points detected: using average of the z values.

Verstehe ich das richtig, dass sich bei X und Y Koordinaten die gleichen Punkte mehrmals befinden und daher eine Interpolation nicht möglich sei? Wie könnte man das umgehen? Mein Ziel ist es am Ende eine Interpolationsformel zu bekommen, die meinen 3d Pfad am besten beschreibt. Könnte man den ganzen Pfad (in Wirklichkeit 1x223 double Zahlen) in Bereiche aufteilen, damit sich die Koordinaten nicht wiederholen? Obwohl die Frage für Matlab Experten vermutlich ganz einfach ist, stehe ich gerade etwas auf dem Schlauch.

Viele Grüße!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.09.2015, 16:02     Titel:
  Antworten mit Zitat      
wenn du eine funktion haben willst musst du ja eine eindeutige abbildung haben. x und y bilden in deinem fall die basis und z ist das was ausgerechnet wird. wenn du aber zum selben paar x y unterschiedliche z werte hast kann man da ja nicht interpolieren. woher soll matlab wissen was da gemacht werden soll?
vielleicht kann dir cscvn helfen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
breakzone
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 22.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.09.2015, 12:38     Titel:
  Antworten mit Zitat      
Danke für deine Rückmeldung!

Ich verstehe, dass x und y Werte unterschiedliche z Werte haben müssen für eine Interpolation, aber was meinst du denn mit der Basis?
Nach meinem Verständnis sind X,Y,Z einfach Koordinaten für einen Punkt in einem 3d Koordinatensystem

Verstehe ich dich richtig, dass du Punkte mit den Koordinaten p6=(5,8,2) und p7=(5,8,3) bei gleichen X und Y Werte unterschiedliche Z Werte besitzen, was de facto das Problem ist?

Könnte ich als workaround einfach statt p7=(5,8,3) p7=(5, 8, 3.0000001) nehmen? Was den Verlauf des Pfades ja sehr unwesentlich verändern würde.

Ich habe cscnv nachgeschlagen und anhand des Beispiels:
Code:

points=[0 1 1 0 -1 -1 0 0; 0 0 1 2 1 0 -1 -2];
fnplt(cscvn(points)); hold on,
plot(points(1,:),points(2,:),'o'), hold off


konnte ich meine Punkte eintragen und einen 3d Plot (bestehend aus kubischen Splines) erstellen. Kann ich zu diesem Spline Verlauf irgendwie die Gleichung aufrufen lassen?

So ganz verstehe ich den Unterschied nicht zwischen dem einfachen
Code:
plot3(x,y,z,'r-ö') Befehl und plot3 (points(1,:),points(2,:),points(3,:), 'o'), hold off nicht.  
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.09.2015, 23:23     Titel:
  Antworten mit Zitat      
Zitat:
Verstehe ich dich richtig, dass du Punkte mit den Koordinaten p6=(5,8,2) und p7=(5,8,3) bei gleichen X und Y Werte unterschiedliche Z Werte besitzen, was de facto das Problem ist?

ja
f(5,8) was soll da rauskommen? 2 oder 3? wie soll matlab interpolieren wenn er zum selben punkt 2 werte hat?
Zitat:
Könnte ich als workaround einfach statt p7=(5,8,3) p7=(5, 8, 3.0000001)
nein.. ist das selbe problem z ist egal. aber unterschiedliche z werte zu den selben x und y werten ist das problem.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
breakzone
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 22.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2015, 09:08     Titel:
  Antworten mit Zitat      
Ok, das habe ich verstanden. Vielen Dank!
Und wie ist das jetzt mit cscvn? Ich fange erst an mich in matlab einzuarbeiten und verstehe den Unterschied zwischen
Code:
plot(points(1,:),points(2,:),'o'), hold off und plot3(X, Y, Z)

nicht.

Kann ich zu diesem Spline Verlauf die entsprechende Gleichung anzeigen lassen?
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.