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

Daten einlesen mit for-Schleife

 

2fast4u
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.08.13
Wohnort: Darmstadt
Version: 2009b
     Beitrag Verfasst am: 29.11.2014, 18:42     Titel: Daten einlesen mit for-Schleife
  Antworten mit Zitat      
Hallo Community,

Als kompletter Anfänger habe ich folgendes Problem:
Ich möchte ein paar Daten aus Versuchen in Matlab einlesen, damit sie im Workspace vorhanden sind. Die einzelnen Log-Dateien sind als <1x1 struct> schon im Workspace vorhanden. Ich würde aber gerne auch den jeweiligen Datensatz im Workspace drin haben. Ich dachte, dass wäre mit einer for-Schleife relativ schnell gemacht, aber ich kriege es leider nicht zum Laufen.

So funktioniert es nicht:

Code:
for ii = 1:5
       
    for jj = 1:2
   
        %WWW
        RFii_WWW_jj = RFii.WWW_jj.data;
   
        %XXX
        RFii_XXX_jj = RFii.XXX_jj.data;
       
        %YYY
        RFii_YYY_jj = RFii.YYY_jj.data;
       
        %ZZZ
        RFii_ZZZ_jj = RFii.ZZZ_jj.data;
    end
   
end    
 


Als Fehlermeldung kommt:
Code:
??? Undefined function or variable 'RFii'.


Im Endeffekt hätte ich in der Zeit, in der ich mich an der Schleife probiert habe, die Daten alle einzeln einlesen können, aber jetzt soll es trotzdem funktionieren.

Schon mal vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 01.12.2014, 10:26     Titel:
  Antworten mit Zitat      
Bitte als Schritt 1 einmal die Ausgabe des "whos" Befehl hier posten.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
2fast4u
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.08.13
Wohnort: Darmstadt
Version: 2009b
     Beitrag Verfasst am: 01.12.2014, 11:25     Titel:
  Antworten mit Zitat      
Code:
>> whos
  Name      Size               Bytes  Class     Attributes

  RF_1      1x1             44594569  struct              
  RF_2      1x1             44594569  struct              
  RF_3      1x1             44594000  struct              
  RF_4      1x1             44597983  struct              
  RF_5      1x1             44594569  struct  
Private Nachricht senden Benutzer-Profile anzeigen
 
2fast4u
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.08.13
Wohnort: Darmstadt
Version: 2009b
     Beitrag Verfasst am: 01.12.2014, 11:55     Titel:
  Antworten mit Zitat      
Der whos Befehl mit einem Datensatz als Beispiel sieht folgendermaßen aus:

Code:
>> whos
  Name            Size                  Bytes  Class     Attributes

  RF_1            1x1                44594569  struct              
  RF_1_XXX_1    1x78273              626184  double              
  RF_2            1x1                44594569  struct              
  RF_3            1x1                44594000  struct              
  RF_4            1x1                44597983  struct              
  RF_5            1x1                44594569  struct              
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 01.12.2014, 12:04     Titel:
  Antworten mit Zitat      
Nun, die Fehlermeldung kann ich auf jeden Fall jetzt erklären. 'RFii' existiert tatsächlich nicht, also kann 'RFii.WWW_jj.data' auch nicht funktionieren. Die Frage ist was 'RFii.WWW_jj.data' eigentlich soll? Gibt es denn z.B. ein 'RF1.WWW_jj.data'?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
2fast4u
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.08.13
Wohnort: Darmstadt
Version: 2009b
     Beitrag Verfasst am: 01.12.2014, 14:24     Titel:
  Antworten mit Zitat      
Ok, den Unterstrich habe ich tatsächlich vergessen. Aber es funktioniert trotzdem noch nicht. Ich habe habe RF_1-5.PEMS_CO2_1-2_delayed.data. Und es sollen nur die Datensätze, mit den eigentlichen Zahlenwerten in den Workspace geladen werden.

Hier sind jetzt nochmal die Schleifen mit dem entsprechenden Unterstrich und mal komplett ausgeschrieben.

Code:
for ii = 1:5
   
    for jj = 1:2
   
        %CO2_delayed
        RF_ii_CO2_jj = RF_ii.PEMS_CO2_jj_delayed.data;
   
        %COH_delayed
        RF_ii_COH_jj = RF_ii.PEMS_COH_jj_delayed.data;
       
        %NOX_delayed
        RF_ii_NOX_jj = RF_ii.PEMS_NOX_jj_delayed.data;
       
        %THC_delayed
        RF_ii_THC_jj = RF_ii.PEMS_THC_jj_delayed.data;
    end
   
end    


Wenn ich die einzelnen Zeilen mit den entsprechenden Nummern eingebe, funktioniert es. Deswegen dachte ich, dass ich das relativ einfach mit einer For-Schleife lassen machen kann. Ich muss zugeben, dass ich mir das relativ leicht vorgestellt habe Embarassed
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 01.12.2014, 14:42     Titel:
  Antworten mit Zitat      
Ich vermute folgendes. Da die Schleifenvariable jj heisst soll auf irgendeine magische Art und Weise die Zuweisung unter Berücksichtigung der Schleifenvariable erfolgen? Also wenn jj Eins ist soll aus

Code:

RF_ii.PEMS_CO2_jj_delayed.data;
 


automatisch

Code:

RF_ii.PEMS_CO2_1_delayed.data;
 


werden??? Ich kenne keine Programmiersprache in der so etwas passieren würde.

In MATLAB würde ich es mit "eval" machen, aber hier im Forum gibt es auch starke Befürworter anderer Methoden. Beispiel:

Code:

teileinervariable=42;
eininhalt=3.141;
einstring=['A', num2str(teileinervariable), '=', num2str(eininhalt)];
disp(einstring) % Das hier wird in der nächsten Zeile ausgeführt
eval(einstring)
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.