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

Vektoren normieren

 

schneidrian
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 20.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2014, 09:43     Titel: Vektoren normieren
  Antworten mit Zitat      
Hallo Leute,

ich stehe gerade etwas auf der Leitung...

Folgende Situation:

Ich habe meine Matrix (mat) und berechne die Normalen in jedem Punkt der Fläche in Form von U V W (xyz Komponenten der Normalen).
Code:

% Mat erzeugen
mat = peaks(50);

% Normalen berechnen
[U V W] = surfnorm(mat);

% Anzeigen
surfnorm(mat);
 


Jetzt will ich die resultierenden Vektoren drehen, normieren und auf eine gewünschte Länge bringen (jeweils alle gleich).

Das Drehen mache ich einfach durch
Code:

U = U .* -1;
V = V .* -1;
W = W .* -1;
 

da mir die Länge nicht wichtig ist, nur die Richtung.

Jetzt kommt aber mein Problem, wie kann ich die in drei (Komponenten) Matrizen (hier 50x50) abgelegten Vektoren normieren und das Ergebnis wieder mit einem definierten Wert multiplizieren um meine Ziellänge zu erreichen.

Kann mir hier bitte jemand helfen? Als Ergebnis stelle ich mir dann wieder drei Komponentenmatrizen U V W vor, jedoch haben die im Vergleich zum Ausgang die umgekehrte Richtung und die selbe Länge.


Vielen herzlichen Dank im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen


schneidrian
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 20.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2014, 10:04     Titel:
  Antworten mit Zitat      
Anmerkung:

Der Befehl
Code:

macht im Prinzip das was ich möchte, jedoch bietet die Option "Scale" nur die Möglichkeit die Länge der Vektoren skalieren, z.B. verdoppeln (2) oder halbieren (0,5), aber leider nicht auf eine definierte Ziellänge. Leider scheint es auch keine Option zu geben die Komponenten auszugeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

so?

Code:
L = sqrt(U.^2 + V.^2 + W.^2); % momentane Länge?
U = U/L;
V = V/L;
W = W/L;


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 20.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2014, 10:51     Titel:
  Antworten mit Zitat      
Oh Mann, danke Harald! Das sollte meiner gewünschten Lösung entsprechen, nur elementweise.


Code:

L = sqrt(U.^2 + V.^2 + W.^2); % momentane Länge?
U = U./L;
V = V./L;
W = W./L;
 


Herzlichen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ja, die Division durch L muss natürlich auch elementweise sein Smile
Kommt davon, wenn man's nicht selber testet...

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.