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

Mehrer .mat files mit gleich-heißenden Matrixen laden

 

Kira106
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 02.04.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2021, 15:56     Titel: Mehrer .mat files mit gleich-heißenden Matrixen laden
  Antworten mit Zitat      
Hallo,

ich bin komplette MATLAB Anfängering, brauche es aber wegen meiner Masterarbeit & bin aktuell mal wieder lost.

Hier meine Frage:

Ich habe viele einzelne .mat files, die jeweils zwei Matrixen A [128 x 251 x 1080] und B [1080 x 1] enthalten, die ich averagen muss bzw. gleichzeitig im Workspace haben.

Die Matrixen heißen jeweils alle A und B. Wie lade ich alle gleichzeit in den Workspace, ohne die anderen zu überschreiben?

Ich habe zwei Parameter, die die Dateinamen von den .mat Dateien spezifizieren, pers und zycl.

Soweit bin ich:

Code:
filename = sprintf('Datei%d_%d_EEG.mat',pers,zycl);
load(filename,'A','B')

Mir ist klar, dass das jetzt irgendwie geloopt werden muss, aber meine Überlegungen übersteigen...

Code:
filename = sprintf('Datei%d_%d_EEG.mat',per,zycl);
for pers=1:45
   for zycl=1:4
      load(filename,'A','B')
   end
end

leider nicht. Da werden A und B ja immer wieder überschrieben.

Am liebsten hätte ich, glaube ich, ein Suffix mit pers und zycl am Ende jeweils von A und B. Und dann eine Strucktur, in der A und B Matrixen drin stehen. Oder gibt es eine schlauere Lösung?

Könnte mir jemand mit ein paar Zeilen Code helfen?

Ich bin unendlich dankbar für Hilfe & entschuldigt bitte meine dilettantisch Ausdrucksweise.

LG Kira
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: 08.04.2021, 21:03     Titel: Re: Mehrer .mat files mit gleich-heißenden Matrixen laden
  Antworten mit Zitat      
Hallo Kira106,

Code:
AC = cell(45, 4);
BC = cell(45, 4);
for pers=1:45
   for zycl=1:4
      filename = sprintf('Datei%d_%d_EEG.mat',per,zycl);
      Data = load(filename);
      AC{pers, zycl} = Data.A;
      BC{pers, zycl} = Data.B;
   end
end

Zitat:
Am liebsten hätte ich, glaube ich, ein Suffix mit pers und zycl am Ende jeweils von A und B.

Das ist ein tyoischer Anfängerfehler: Indices im Namen einer Variablen zu verstecken schafft eine Menge Probleme. Wenn man dagegen Arrays mit Indices verwendet, kann man sie einfach per Schleife bearbeiten. Hier habe ich mal ein Cell Array verwendet, aber da alle Arrays gleich groß sind, wären ein 5D Array für A und ein 3D Array für B auch geeignet.

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Kira106
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 02.04.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2021, 08:40     Titel:
  Antworten mit Zitat      
Hallo Jan,

Vielen Dank für deien Hilfe, das werde ich gleich probieren Smile

LG Kira
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 - 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.