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

Vektorensummierung for-Schleife?

 

Philbo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2010, 22:57     Titel: Vektorensummierung for-Schleife?
  Antworten mit Zitat      
Hallo,

ich bin in Matlab noch relativ unerfahren, bis auf ein paar Basics, darum stell ich einfach mal meine Frage:

#####
Problem: Eingabe einer Anzahl n (in diesem Fall Körper), mit der Annahme das Massen und Längen dieser Körper (Pendelstab mit konzentierter Masse) gleich sind.
#####

Der x,y und z-Wert eines jeden Massenmittelpunktes lässt sich in einem Vektor r_n zusammenfassen. Wobei dieser Vektor wiederum in einen Vektor zusammengefasst wird --> r(n)=[r_1;...;r_n]

Der x-Wert eines einzelnen Körpers n berechnet sich nach:
x_n(n)=Summe von k=1 bis n mit (l*cos(phi)) wobei l und phi als gleiche Werte für jedes Pendel angenommen werden.
Ähnliche Berechnungen erfolgen für den y- und z-Wert.

#####
Nun sind meine Matlabkenntnisse erschöpft. Wie errechne ich z.b. in einer for-Schleife (meinetwegen auch anders), die einzelnen x_n,y_n,z_n-Werte eines Körpers und weise diese wiederum den einzelnen Vektoren r_1 bis r_n=[x_n;y_n;z_n] zu. Und diese Vektoren wiederum einen Vektor r(n), welcher die r_n's als Zeilen enthält?

Für einen Lösungsvorschlag wäre ich Dankbar.

Für weitere Berechnungen sollten mir die einzelnen als auch der große zusammengefügte Vektor zur verfügung stellen.

--> Im Prinzip wird es eine Modellierung von n-Pendeln, welche frei wählbar sein sollten und je nach angabe der anzahl der Vektor r(n) um 3 Einträge (x;y;z) pro Körper wächst bzw. schrumpft.

Ich freue mich über Eure Hilfe

mfg,


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 28.08.2010, 19:09     Titel: Re: Vektorensummierung for-Schleife?
  Antworten mit Zitat      
Philbo hat Folgendes geschrieben:
Nun sind meine Matlabkenntnisse erschöpft.
von denen du uns leider noch nix gezeigt hast. sollen wir deine Hausaufgaben machen? hast du noch gar nix probiert?

sieht fast nach einem Fall für
Code:
aus - aber ohne Ansatz ist das auch wieder schwer nen guten Tipp zu geben...
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Philbo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2010, 14:40     Titel:
  Antworten mit Zitat      
Hallo nocheinmal,

also Hausaufgaben sollen es keine werden keine Angst Smile
Ich habe versucht schon ein bisschen zu basteln, jedoch ergab es für mich keinen Sinn. Ich wollte einfach mal ein paar mögliche Ansätze von erfahrenen Matlab-Usern erfragen. Den Eval-Befehl werde ich mir mal anschauen und versuchen mit einzubauen, dann schreibe ich den code einmal hier nieder.

mfg,
 
Philbo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2010, 09:53     Titel:
  Antworten mit Zitat      
So hier einmal mein weniger erfolgreicher Versuch
Code:
r_a_0       = [0; 0; 0]; %Vektor in der Aufhängung
u_0         = [0; 1; 0]; %Einheitsvektor
l=0.05                   %Länge
phi_Grad    = 40;        %Auslenkung        
phi         = phi_Grad*pi/180;
n=3;         %Anzahl der Körper

Koerper=1:1:n
x_n=Koerper.*(l*sin(phi)); %Berechnung der x,y,z-Werte
y_n=Koerper.*(0);
z_n=Koerper.*(-l*cos(phi));
r_n=[sum(x_n); sum(y_n); sum(z_n)] %zusammenfassen in einem Vektor
r=[r_a_0; r_n] %Vektoren in einem großen Vektor zusammenfassen

%Weiter rechnen mit den Vektorwerten
v_neu   = cross((r_n-r_(n-1)), u_0)
%oder
v_neu   = cross((r(n)-r(n-1)), u_0) %wenn r() --> Dimension n x 3


Die Berechnung der x,y,z-Werte funktioniert. Nur wird mir allein der Vektor mit der Anzahl n ausgegeben und nicht alle vektoren r_1,...,r_n? Wie erreiche ich das? Am Ende benötige ich den Vektor r(n)=[r_a_0; r_1;...;r_n] für weitere Berechnungen. Aber auch die einzelnen r_n müssen sich auslesen lassen z.B. für die Berechnung von v_neu(n)=cross(( r_n - r_(n-1) ), u_0)?
 
Philbo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2010, 12:53     Titel:
  Antworten mit Zitat      
Soo den ersten Schritt habe ich geschafft:

Code:

r_a_0       = [0; 0; 0]; %Vektor in der Aufhängung
u_0         = [0; 1; 0]; %Einheitsvektor
l=0.05;                   %Länge
phi_Grad    = 40;        %Auslenkung        
phi         = phi_Grad*pi/180;
n=5;         %Anzahl der Körper

for Koerper=1:1:n
    x_n=Koerper.*(l*sin(phi)) %Berechnung der x,y,z-Werte
    y_n=Koerper.*(0)
    z_n=Koerper.*(-l*cos(phi))
    r_n(:, Koerper)=[x_n; y_n; z_n] %zusammenfassen in einem Vektor
    r_nn=r_n(:)
    r=[r_a_0; r_nn] %Vektoren in einem großen Vektor zusammenfassen
end
 
 
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.