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

Elemente innerhalb einer schleife ansprechen...

 

schrrauber
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 14.12.2009, 10:59     Titel: Elemente innerhalb einer schleife ansprechen...
  Antworten mit Zitat      
Hallo an alle,

ich Erzeuge innehalb einer for-Schleife einen Vektor (mit x, y, z Wert). Die Schleife geht von i=[1:n] mit n=8. Also Erhalte ich 8 Vektoren, die untereinander im Command Window stehen.
Jetzt würde ich gerne die Verbindungsvektoren der einzelnen Punkte bilden. Also will ich den i ten Vektor vom i+1 ten Vektor abziehen.
Ich weiß aber nicht wie ich das anstellen soll.. wie ich den i+1 ten Vektor anspreche....

Danke schonmal...

Gruß schrrauber
Private Nachricht senden Benutzer-Profile anzeigen


Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 14.12.2009, 11:07     Titel:
  Antworten mit Zitat      
Hi,

Das ist mir jetzt nicht ganz klar, hast du jetzt 8 einzelne Vektoren in deinem Workspace oder hast du ein Array mit 3 Zeilen und 8 Spalten?

Ein kurzes Beispiel wäre hilfreich, da ich sonst nicht das Problem sehe, da du die Lösung eigentlich schon hast, falls es 8 einzelne Vektoren sind.

Grüße Björn
Private Nachricht senden Benutzer-Profile anzeigen
 
santa claus
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 25.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2009, 11:10     Titel:
  Antworten mit Zitat      
also wenn du die vektoren die du in der schleife erzeugst in einer Matrix abspeicherst, z.B.
Code:

for i=1:n

v(i)=...

end

 


dann kannst du jetzt auch die i-te Spalte von der i+1-Spalte abziehen etc.
Private Nachricht senden Benutzer-Profile anzeigen
 
schrrauber
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 14.12.2009, 11:19     Titel:
  Antworten mit Zitat      
Das war es was ich gesucht habe.... die Vektoren in einer Matrix abspeichern, damit ich Sie saltenweise ansprechen kann.

Dake!

Gruß schrrauber
Private Nachricht senden Benutzer-Profile anzeigen
 
schrrauber
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 14.12.2009, 11:26     Titel:
  Antworten mit Zitat      
aber was kommt jetz hinter das = bei v(i)=...
Private Nachricht senden Benutzer-Profile anzeigen
 
Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 14.12.2009, 11:30     Titel:
  Antworten mit Zitat      
Hi,

Das muss dann denk ich so aussehen:

Code:

for ii=1:n
    v(ii,:)=[x y z]
end
 


Grüße Björn
Private Nachricht senden Benutzer-Profile anzeigen
 
schrrauber
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 14.12.2009, 14:15     Titel:
  Antworten mit Zitat      
Nee, nee, nee... es klappt einfach nicht...

Er läuft ja die Schleife n-mal durch. Bei jedem durchlauf kommt eine andere Matrix raus, die er -sofern kein semikolon am ende der Zeile steht- untereinander im command window ausgibt. Wenn ich aber dann die matrix aufrufe, gibt er mir nur die letzte aus, weil die ja auch nur noch im speicher ist und alle vorherigen überschrieben wurden.
Ich will aber eine neue Matrix die alle untermatrizen enthält, die ich dann spalten und zeilenweise aufrufen kann.
Der Björn hat ja versucht mir das klar zu machen aber ich verstehe es nicht. Es funktioniert so einach nicht bei mir. Kann mir jemand den genauen sinn der schreibweise erläutern....

sorry... vieleicht stehe ich auch auf dem schlauch
Private Nachricht senden Benutzer-Profile anzeigen
 
Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 14.12.2009, 14:28     Titel:
  Antworten mit Zitat      
Hi,

wie gibst du denn im Commandwindow den Befehl ein? Gibst du v ein oder gibst du v(ii,: )?
Wenn du v(ii,: ) eingegeben hast dann kommt da die for schleife fertig ist ii=n=8.
Das hat dann zur folge dass in deiner eingabe v( 8,: ) steht und somit die 8 Zeile angesprochen wird. Der Doppelpunkt sagt aus dass er die ganze Zeile ausgeben soll.

Grüße Björn
Private Nachricht senden Benutzer-Profile anzeigen
 
schrrauber
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 15.12.2009, 11:01     Titel:
  Antworten mit Zitat      
Also... hier nochmal mit einem richtigen Beispiel.
Das ist mein Beispiel m-file:

clear
clc

M=[1;2;3;];
n=8

for i=1:n
N=i+M
end

wenn ich nun im Command Window N anspreche bekomme ich nur den letzten Vektor. (mit i=8). Ich hätte aber gerne eine Matrix mit ALLEN Vektoren von i=1 bis i=8 Spaltenweise. Also erte Spalte i=1.....8.Spalte i=8.

Wie muss der m-file konkret aussehen? Was muss ich ändern?

Gruß schrrauber
Private Nachricht senden Benutzer-Profile anzeigen
 
Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 15.12.2009, 11:38     Titel:
  Antworten mit Zitat      
Hi,

also ich hab mal dein Beispiel kopiert und so gändert wie ich es gestern gepostet hab.

Code:

clear
clc

M=[1;2;3;];
n=8

for i=1:n
N(i,:)=M
end
 


Er gibt mir jetzt eine 8x3 Matrix aus die wie folgt aussieht:
N= 1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3

passt die Ausgabe so?

Grüße Björn

Achja du kannst M=[1 2 3]; schreiben und dir die ; sparen nur am ende nicht da du ja die Ausgabe unterdrücken möchtest.
Private Nachricht senden Benutzer-Profile anzeigen
 
schrrauber
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 15.12.2009, 11:56     Titel:
  Antworten mit Zitat      
Joa.. net so ganz das was ich mir vorgestellt hatte... aber ich hab auch ein wenig getüftelt und ich muss sagen wie alles im Leben... ist eigentlich ganz leicht, wenn man weiß wie es geht! Smile

clear
clc

M=[1;2;3;];
n=8;

for i=1:n
N=i+M;
A(:,i)=N;
end

Für A bekomme ich genau das was ich will. Spaltenweise alle Vektoren von i= 1 bis i= 8.

trotz allem vielen dank für die hilfe!!!

Gruß schrrauber
Private Nachricht senden Benutzer-Profile anzeigen
 
Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 15.12.2009, 12:11     Titel:
  Antworten mit Zitat      
Hi,

Da haben wir ein wenig aneinander vorbei geredet Smile. Na dann auf jedenfall noch viel Erfolg.

Grüße Björn
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.