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 in for-loop speichern

 

Tolpatsch
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 18.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 16:32     Titel: Vektoren in for-loop speichern
  Antworten mit Zitat      
Hi Matlab Experts,

Ich habe ein kleines Problem mit einem for-loop. Ich möchte von der ersten Kolonne einer Matrix A die zweite subtrahieren, von der dritten Kolonne derselben Matrix A möchte ich die vierte subtrahieren, von der fünften Kolonne... Während des loops sollten die resultierenden Vektoren in meinen workspace gespeichert werden. Meine Code funktioniert leider nicht...

for i = 1:2:9
A(:,i) = A(:,i)-A(:,i+1);
filename = [ 'A' num2str(i) '.mat' ];
save(filename);
end

Vielen Dank für die Hilfe!!!
Private Nachricht senden Benutzer-Profile anzeigen


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 16:47     Titel:
  Antworten mit Zitat      
Der Code funktioniert. Die Matrix A enthält auf den Spalten 1:2:9 die gewünschten Differenzen. Der save Befehl speichert in jedem Durchgang alle Variablen des Workspace.
Bitte genauer schreiben, was du erwartest.
 
Tolpatsch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 18.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 16:54     Titel:
  Antworten mit Zitat      
Leider kriege ich die Variablen nicht in meinen workspace... verstehe auch nicht warum.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 16:56     Titel:
  Antworten mit Zitat      
Die Variable ist A, du ersetzt ja nur die Originalspalten durch die Differenzen.
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 23.02.2009, 16:57     Titel:
  Antworten mit Zitat      
Hallo,

Ich weiß zwar nicht ganz genau was du machen willst aber der Code funktioniert soweit. Es wird immer eine Datei z.B. A1.mat erzeugt, die alle Variablen des Workspace enthalten. Willst du nur A1 da drin haben musst du
Code:

save(filename,'Variable');
 

benutzen.

Übrigens du brauchst keine For Schleife:

Code:

k=1:2:9
B(:,k)=A(:,k)-A(:,k+1)
 


Viele Grüße,

der Oli

Nachtrag: Man bin ich langsam, da habt ihr euch in der Zwischenzeit schon mehrmals hin und her geschrieben
Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Tolpatsch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 18.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 17:25     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Hilfe!!!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Tolpatsch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 18.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 18:10     Titel:
  Antworten mit Zitat      
eine weitere Frage:
falls ich wie oben erwähnt nur A1, A2 etc. (das sind die einzelnen Spaltenvektoren) in meinen Workspace speichern möchte, wie muss ich dann der Variablenname definieren?
Mein Vorschlag...

for k = 1:2:9
A(:,k) = A(:,k)-A(:,k+1);
save('filename','A' num2str(k));
end

... funktioniert leider nicht...

Cheers!
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 18:21     Titel:
  Antworten mit Zitat      
Wenn du die Werte nur im Workspace brauchst kannst du save ganz weglassen. Da du sowieso immer Spalten von A überschreibst würde es auch reichen A am Ende der Schleife zu speichern (in ein mat-Fiel, wenn es denn gewünscht ist).
Generell ist es aber besser, die Spalten gemeinsam zu verwalten, z.B. in einer neuen Matrix:
Code:
A=magic(10)
B(:,1:5)=A(:,1:2:9)-A(:,2:2:10)

Die Summe der Zeilendifferenzen der ersten beiden Spalten von A wäre jetzt
Code:
. Von Spalten 3 und 4 von A entsprechend
Code:
usw.
Wenn du wirklich explizit B1, B2 usw. im Workspace brauchst suche im Forum nach 'eval'. Das würde man aber soweit es geht vermeiden...
 
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.