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

Frage zu einer Winkelberechnung

 

brev
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2008, 18:27     Titel: Frage zu einer Winkelberechnung
  Antworten mit Zitat      
Hallo zusammen,
ich bin gerade bei einer Uniaufgabe und stehe arg vorm Berg:

Ich will den Winkel zwischen 2 dreidimensionalen Vektoren berechnen. Das tut auch so ganz gut mit diesem Code:
thetaRad = acos((a*g')/(aBetrag * gBetrag));
a, g sind zeilenvektoren, aBetrag, gBetrag die jeweiligen "längen"

Jetzt kommt aber mein eigentliches Problem. Ich will dieses nun für Matrizen von Vektoren benutzen. Das heisst, ich habe 90 Zeilen mit jeweils einen Vektor, dazu noch 90 Betragseinträge. Ich habe das hier dazu geschrieben:
for i=1:91
thetaVecRad(i) = acos((aVec(i,Smile*gVec(i,Smile')/(aVecBetrag(i) * gVecBetrag(i)));
end

Irgendwas wird berechnet, aber es passt nicht. Was mache ich da falsch?

Vielen Dank schonmal für eure Hilfe

Gruss
brev
Private Nachricht senden Benutzer-Profile anzeigen


brev
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2008, 18:28     Titel:
  Antworten mit Zitat      
also, ich seh gerade, : da wo die smileys sind, muss doppelpunkt klammer hin... steuerzeichen erwischt *g*
Private Nachricht senden Benutzer-Profile anzeigen
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 26.01.2008, 19:45     Titel:
  Antworten mit Zitat      
Die normalen Rechenoperationen " * / ^ " etc werden bei Matlab standardmässig als matrixoperation durchgeführt. Probier mal

A .* B

das multipliziert jedes A_{ij} mit jedem B_{ij}. Das suchst Du doch, oder?
Das mit dem Punkt geht genauso auch für ./ und .^
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
brev
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2008, 11:46     Titel:
  Antworten mit Zitat      
also, ich hab das jetzt mit dem Punktoperator umgebaut, aber irgendwie berechnet der was falsches... kann es sein, dass es so garnicht geht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 27.01.2008, 14:51     Titel:
  Antworten mit Zitat      
Hmm die Formeln hatte ich mir gar nicht angeschaut. Auf erste würde mir einfallen, dass evtl beim transponieren was schiefgeht - da hilft aber nur stück für stück den code und die zwischenergebnisse nachschauen..
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 27.01.2008, 17:07     Titel:
  Antworten mit Zitat      
Hi,

vielleicht berechnest Du die Beträge falsch?
Code:
for i = 1:3
    acosd(dot(avec(i,:),bvec(i,:))/(sqrt(sum(avec(i,:).^2)*sum(bvec(i,:).^2))))
end


Ich hab dot für das Skalar-Produkt benutzt.
Beachte, dass acos den Winkel in rad liefert.
Du kannst acosd nutzen oder manuell umwandeln.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.