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

Rotationsmatrix aus Vektoren

 

derric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2009, 11:56     Titel: Rotationsmatrix aus Vektoren
  Antworten mit Zitat      
Schönen Guten Tag,

ich habe folgendes Probelem und zwar habe ich je 3 Vektoren in 2 Verschiedenen Koorfinatensystemen, der Ursprung ist identisch also brauche ich keine Verschiebung sondern nur die Verdrehung der Vektoren...

die Ausgangsformel lautet dann:

v1 = R * v2

R = 3x3 Rotationsmatrix (gesucht)
v1 = Zielvektor
v2 = Ausgangsvektor

Wie kann ich das in Matlab geschickt lösen? wie gesagt ich habe 3 Vektorenpaare...

Vielen Dank im Vorraus


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.12.2009, 12:24     Titel:
  Antworten mit Zitat      
Hallo,

die Spalten(!)-Vektoren zu Matrizen kombinieren. Dann hat man:
Code:

also
Code:
R = V1 * inv(V2)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
derric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2009, 12:47     Titel:
  Antworten mit Zitat      
Hallo Harald,

erstmal danke für die schnelle Antwort Smile

hab das hoffentlich richtig verstanden und aus den Spalten-Vektoren jetzt auch eine 3x3 Matrix gemacht...
Matlab is das aber glaub ich irgendwie zu wenig Fleisch zum berechnen, deswegen meinte ich ja, ich habe insgesamt 3 Vektorenpaare. Wenn ich das so rechnen spuckt mir Matlab folgendes aus:

Code:
>> V1 = [0.0269   0 0;0 0.1351 0;0 0 0.1940]
V1 =
    0.0269         0         0
         0    0.1351         0
         0         0    0.1940
>> V2 = [0 0 0;0 0.1388 0;0 0 0.1943]
V2 =
         0         0         0
         0    0.1388         0
         0         0    0.1943
>> R = V1 * inv(V2)
Warning: Matrix is singular to working precision.
R =
   NaN   NaN   NaN
   NaN   NaN   NaN
   NaN   NaN   NaN
>>


Grüße, Matthias
 
derric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2009, 12:51     Titel:
  Antworten mit Zitat      
Hallo Harald,

erstmal danke für die schnelle Antwort Smile

hab das hoffentlich richtig verstanden und aus den Spalten-Vektoren jetzt auch eine 3x3 Matrix gemacht...
Matlab is das aber glaub ich irgendwie zu wenig Fleisch zum berechnen, deswegen meinte ich ja, ich habe insgesamt 3 Vektorenpaare. Wenn ich das so rechnen spuckt mir Matlab folgendes aus:

Code:
>> V1 = [0.0269   0 0;0 0.1351 0;0 0 0.1940]
V1 =
    0.0269         0         0
         0    0.1351         0
         0         0    0.1940
>> V2 = [0 0 0;0 0.1388 0;0 0 0.1943]
V2 =
         0         0         0
         0    0.1388         0
         0         0    0.1943
>> R = V1 * inv(V2)
Warning: Matrix is singular to working precision.
R =
   NaN   NaN   NaN
   NaN   NaN   NaN
   NaN   NaN   NaN
>>


Grüße, Matthias
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.12.2009, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

der Grund ist recht einfach: durch eine Drehung werden die Längenverhältnisse gleich gelassen. Bei dir ist das offensichtlich nicht der Fall.
Was bei dir vorliegt, ist anscheinend eine Skalierung/Streckung. Und wäre dann nun recht simpel:

Code:
R = [0 0 0; 0 0.1351/01388 0; 0 0 0.1940/0.1943]

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
derric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2009, 13:16     Titel:
  Antworten mit Zitat      
hmm... laut meinem Prof. müsste der Maßstabsfaktor aber in der Matrix dann automatisch enthalten sein...
Und als ich mir die Vektoren genauer angeschaut habe, habe ich die Winkel zwischen ihnen berechnet, somit kann es doch garkeine reine Skalierung sein.

gibt es den in MatLab keine Möglichkeit alle 3 Vektorenpaare in die Lösung mit einzubeziehn??

Grüße, Matthias
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.12.2009, 13:33     Titel:
  Antworten mit Zitat      
Hallo nochmal,

ich sehe gerade ein Problem... hatte mich beim letzten Post vertan.

Wenn ich es richtig verstehe, hast du ein Paar v2 = [0; 0; 0] und v1 = [0.0269; 0; 0] und willst v1 = R*v2. Das wird nie klappen, weil R*[0;0;0] immer [0; 0; 0] ergeben wird.

Ansonsten sollte der von mir anfänglich vorgeschlagene Weg immer funktionieren, wenn es eine eindeutige Abbildung gibt.

Und wenn die Aufgabenstellung vom Prof ist, warum nicht im Zweifelsfall den Prof oder einen Assistenten fragen?

Grüße,
Harald
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.