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

Subspace Funktion: Winkel zwischen 2 Vektoren

 

dx_dy
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 06.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2013, 13:23     Titel: Subspace Funktion: Winkel zwischen 2 Vektoren
  Antworten mit Zitat      
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:

Code:


%a und b ist so definiert dass in jeder Spalte ein Vektor (x,y,z) steht

a=n_ist';
b=n_soll';

for i=1:1:size_messdatei(1);
       
   Winkel_gesamt(i)=subspace(a(:,i),b(:,i));
     
end

 

_________________

Mark Twain didn't actually say half the shit the Internet says he did. ~Mark Twain
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 21.01.2013, 16:39     Titel:
  Antworten mit Zitat      
Hallo,

du kannst die Funktion selbst mit acos(abs(A'*B)/(abs(A)*abs(B))) überprüfen.

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
dx_dy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 06.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2013, 17:30     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.01.2013, 18:28     Titel: Re: Subspace Funktion: Winkel zwischen 2 Vektoren
  Antworten mit Zitat      
Hallo dx_dy,

Eine kurze Netzrecherche nach "Matlab angle between two vectors" enthüllt diese Methode:
Code:

Dies ist im Vergleich zu "acos(A'*B/(abs(A)*abs(B)))" numerisch deutlich stabiler.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
dx_dy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 06.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2013, 19:39     Titel:
  Antworten mit Zitat      
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 Wink

Code:

winkel=acos((v1*v2')/(sqrt(dot(v1,v1))*sqrt(dot(v2,v2))))
 


aber Dank!
_________________

Mark Twain didn't actually say half the shit the Internet says he did. ~Mark Twain
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 28.01.2013, 10:42     Titel:
  Antworten mit Zitat      
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
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.