|
|
Subspace Funktion: Winkel zwischen 2 Vektoren |
|
dx_dy |

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 06.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2013, 13:23
Titel: Subspace Funktion: Winkel zwischen 2 Vektoren
|
 |
|
 |
|
Hallo,
ich schreibe aktuell an einem Programm zur Auswertung von Oberflächenfehlern.
Zu diesem Zweck muss ich die Winkel (Winkel zwischen 2 Vektoren) von mehreren 100.000 Soll- und Ist- Vektoren ausrechnen.
Winkel zwischen Vektoren lassen sich mit dem Skalarprodukt ausrechen.
Ich habe die Funktion "Subspace" in Matlab gefunden, und so wie ich das verstanden habe liefert mir diese Fkt genau den Winkel zwischen 2 Vektoren.
In der Matlab-Hilfe steht folgendes
Zitat: |
Description
theta = subspace(A,B) finds the angle between two subspaces specified by the columns of A and B. If A and B are column vectors of unit length, this is the same as acos(abs(A'*B)).
|
Um ganz sicher zu sein ist meine Frage:
-Habe ich das richtig verstanden?
-Liefert mir Subspace wirkliche den Winkel zwischen 2 Vektoren?
-Kann ich mir mit Subspace das Programmieren einer Skalarprodukt-Fkt ersparen?
Hier ein Code Bsp:
_________________
Mark Twain didn't actually say half the shit the Internet says he did. ~Mark Twain
|
|
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 21.01.2013, 16:39
Titel:
|
 |
Hallo,
du kannst die Funktion selbst mit acos(abs(A'*B)/(abs(A)*abs(B))) überprüfen.
Grüße, Marc
|
|
|
dx_dy |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 06.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2013, 17:30
Titel:
|
 |
Hi, danke!
Hab ich schon, es passt nur nicht immer ganz d.h. leichte Abweichungen.
Um es zu verstehen würde ich gerne wissen woher diese Abweichungen kommen. Ob Zufall, interne Rundung oder was ganz anderes.
_________________
Mark Twain didn't actually say half the shit the Internet says he did. ~Mark Twain
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.01.2013, 18:28
Titel: Re: Subspace Funktion: Winkel zwischen 2 Vektoren
|
 |
Hallo dx_dy,
Eine kurze Netzrecherche nach "Matlab angle between two vectors" enthüllt diese Methode:
Dies ist im Vergleich zu "acos(A'*B/(abs(A)*abs(B)))" numerisch deutlich stabiler.
Gruß, Jan
|
|
|
dx_dy |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 06.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 19:39
Titel:
|
 |
MaFam hat Folgendes geschrieben: |
Hallo,
du kannst die Funktion selbst mit acos(abs(A'*B)/(abs(A)*abs(B))) überprüfen.
Grüße, Marc |
Folgendes würde besser klappen
aber Dank!
_________________
Mark Twain didn't actually say half the shit the Internet says he did. ~Mark Twain
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 28.01.2013, 10:42
Titel:
|
 |
Hallo,
warum sollte dein Vorschlag besser funktionieren? Das ist doch programmiertechnisch äquivalent.
Jans Vorschlag ist hingegen besser, weil es numerisch stabiler ist.
Grüße, Marc
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|