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

Bei jedem Schleifendrl., Vektor in nächster Zeile hintelege

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2011, 10:35     Titel: Bei jedem Schleifendrl., Vektor in nächster Zeile hintelege
  Antworten mit Zitat      
Hallo,

ich habe eine Schleife:

Code:

for i = [1 2 5 13]
    ... % in jedem Schleifendurchlauf wird ein Zeilenvektor generiert
    ... % hier werden die Vektoren in der jew. Zeile in Matrix gespeichert
    ... % irgendwie so: Matrix(i;Zeilenvektor)
end;

plot(Zeit,Matrix(1),Zeit,Matrix(2),,Zeit,Matrix(3),,...)
 


ich hoffe es ist verständlich


_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 06.10.2011, 11:21     Titel:
  Antworten mit Zitat      
Es ist verständlich, dass du eine Schleife hast ja, mehr aber auch nicht...
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
epsp
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 04.10.11
Wohnort: Lübeck
Version: ---
     Beitrag Verfasst am: 06.10.2011, 11:41     Titel:
  Antworten mit Zitat      
Hey,

ist dein Plan eine Matrix Zeilenweise aufzubauen, indem du in der Schleife immer die i-te Zeile erzeugst und dann in die Matrix an die entsprechende Zeile schreibst? So verstehe ich das jetzt...

Das ginge dann so:
Code:

Matrix(i,:)=Zeilenvektor;
 


Vorrausgesetzt du hast die Matrix vorher schonmal entsprechend angelegt und die Dimensionen sind richtig.

EDIT:

Achso ich denke jetzt verstehe ich dich. Der i-te Vektor soll nicht auch in die i-te Zeile der Matrix, du willst schlicht eine Liste (in Form einer Matrix) von diesen Vektoren...

Zwei Möglichkeiten: Wenn es nicht viele und nicht sehr lange Zeilen sind, dann ginge es so:

Code:

Matrix=<hier für n=1 den Vektor berechnen>;
for n = [2 5 13]
    % Vektor generieren
    Matrix=[Matrix;Vektor];
end;
 

Würde ich aber nicht machen wenn das mal schnell sein soll...

Schöner wäre
Code:

zeiten=[1 2 5 13];    %denke mal das sollen die Zeiten sein?
Matrix=zeros(numel(zeiten),laengeVektor);
for n=1:numel(zeiten)
   %Vektor generieren mit zeiten(n) kannste dann ja auf den nötigen wert zugreifen
   Matrix(n,:)=Vektor;
end
 


Gruß
Malte
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2011, 12:19     Titel:
  Antworten mit Zitat      
danke malte hat geklappt!

jetzt aber noch ne frage:
manchmal kommt es das ein Vektor nur aus Nullen besteht. Diese Zeilen möchte ich löschen, aber wie?
 
epsp
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 04.10.11
Wohnort: Lübeck
Version: ---
     Beitrag Verfasst am: 06.10.2011, 12:26     Titel:
  Antworten mit Zitat      
Also zunächst nochmal darüber nachdenken, ob das sein darf, dass bei deiner Berechnung Null-Vektoren rauskommen...
Wenn ja, dann guck dir mal in der Dokumentation den Befehl "find" an.
Damit kannst du dir die Indices ausgeben lassen für die eine Bedingung zutrifft (im einfachsten Fall also z.b. die Zeilen die ungleich 0 sind).
Damit kannst du deine Matrix zurechtstutzen indem du sagst:
Code:
Matrix=Matrix(find(Matrix),:);

Zumindest so ähnlich geht es.
Du musst aber nochmal nachschlagen wie genau das mit find geht, denn du möchtest ja den Vektor mit den Zeilenindices haben und nicht die Spalten.

Die Dokumentation von Matlab ist eine der besten die ich kenne, also schön "doc find" ausführen ;) !


Gruß
Malte
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: 06.10.2011, 12:46     Titel:
  Antworten mit Zitat      
Hallo Anonymous,

Entfernung aller Zeilen, die nur Nullen enthalten:
Code:
M = M(any(M, 2), :);

Gruß, Jan
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.