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

Bildung einzelne MAT file, aus mehrere Messdateien

 

fosiba
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2008, 16:50     Titel: Bildung einzelne MAT file, aus mehrere Messdateien
  Antworten mit Zitat      
Hi,

Frage: Wie könnte ich viele MAT file in einem gemeinsamen grose MAT file zusemmenfügen?
Die einzelne MAt file sind Messdaten,da alle hat die gleiche Variable.
Danke
Private Nachricht senden Benutzer-Profile anzeigen


tristan
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2008, 16:51     Titel:
  Antworten mit Zitat      
Hallo,

Ich bin zwar kein Spezi, aber kannst du nicht die einzelnen Mat Files einlesen und in einer matrix speichern oder so und dann diese Gesamtmatrix in ein File speichern?

VG
Private Nachricht senden Benutzer-Profile anzeigen
 
fosiba
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2008, 18:37     Titel:
  Antworten mit Zitat      
Hi,

In den MAT filen steht ca. 30 Variable. Lese ich ein, speichere mit andere filename, aber wie kann ich die nächste Messdatei zusammenfügen? Wenn klicke Save, die alte wird überschreiben.

zB: stell dir 10 Messdateie vor, jede Messdatei ca. 2000 Sekundum lang und jede Messdatei hat ca. 30 Variable, also am Ende brauche ich 10*2000 Sekunde lange Gesamtfile.
MFG
Private Nachricht senden Benutzer-Profile anzeigen
 
tristan
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2008, 09:32     Titel:
  Antworten mit Zitat      
Ich meinte das du die Files einzeln in eine Matrix in den Workspace einliest und dann eine neue Matrix aus den einzelnen baust. Danach diese dann in ein File schreiben.


Edit by Martin: HERZLICHEN GLÜCKWUNSCH zum insgesamt 5000. Beitrag im Forum Smile *hihi*
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 17.04.2008, 10:40     Titel:
  Antworten mit Zitat      
Was tristan (wahrscheinlich Very Happy ) meint, ist Folgendes:

Code:
load file1.mat  % Variablen A1 bis A30

A1_temp = A1;
A2_temp = A2;
...
   
load file2.mat  % wieder Variablen A1 bis A30

A1_temp = [A1_temp A1];   % nicht überschreiben, sondern anhängen
A2_temp = [A2_temp A2];
...

load ...
A1_temp = [A1_temp A1];
A2_temp = [A2_temp A2];
...

load ...
...

A1 = A1_temp;
A2 = A2_temp;
...
   
save file_all A1 A2 ...


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
fosiba
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2008, 11:35     Titel:
  Antworten mit Zitat      
Hi,
Danke, ich habe schon gelöst, lest automatisch ein. Keine zweite for Schleife notwendig zum anhängen, wie ich gemacht habe. Deine Antwort perfekt, einfacher!

Code:

ordnerinhalt=dir('*.mat'); %alle mat file einlesen
j=1;
for k=1:length(ordnerinhalt); %geht entlang die Files
    load(ordnerinhalt(k).name); %Lest die eintsprechende mat file ein

    for i=1:length(A1);
        A1_temp(j,:)=A1(i,:);
          j=j+1;
    end

 end
 


MFG fosiba
Private Nachricht senden Benutzer-Profile anzeigen
 
Liza
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 18.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2009, 12:20     Titel: MAT-Files
  Antworten mit Zitat      
Hallo...
ich hab 13 Matfiles und da stehen nur Zahlen drin. die Zahlen möchte ich gern rauslesen und dann weiter bearbeiten. wenn ich die matfiles mit load in eine variable(z.B. "A") speicher dann kann ich auf die Werte nur zugreifen, wenn ich eintippe "A.Mat1" d.h. ich kann keine schleife erstellen weil das zeug nach dem punkt keine laufvariable enthalten darf...

hat jemand eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.09.2009, 13:42     Titel:
  Antworten mit Zitat      
Hallo Liza,

irgend wie verstehe ich nicht ganz?

Du hast 13 *.mat-Files? Oder 13 Variablen in einem *.mat-File?

du ladest diesen *.mat-File in Variable A, so ungefähr?
Code:

A=load('matfile.mat')
 


Und du möchtest auf diese Varibalen zugreifen (A.Mat1... A.Mat13)
Ist das richtig?
Wenn das so ist, dann kannst dynamischen Felder verwenden
Code:

A.Mat1=111;
A.Mat2=223;

f_names = fieldnames(A);
for f_n=1:length(f_names)
  A.(f_names{f_n})
end
 


oder wenn der Name immer aus Wort Mat und Zahl besteht
Code:

A.Mat1=10;
A.Mat2=15;
for f_n=1:2
  A.(['Mat',num2str(f_n)])
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Liza
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 18.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2009, 14:17     Titel:
  Antworten mit Zitat      
ja so in der art. habe das Problem mit den komischen Feldern schon gelöst. habe jetzt alle 13 mat-files eingeladen. die haben alle den namen "m_Zahl" mit den Zahlen von 1 bis 13.
nun möchte ich um den inhalt weiter zu verarbeiten die jeweiligen namen in einer forschleife aufrufen. aber ich kann die laufvariable meiner schleife ja nicht einfach in den namen schreiben. weil ich würde gerne noch auf einzlene Spalten in diese m_1 bis m_13 zugreifen und damit arbeiten.

Bsp:

Code:

for kk=1:13
DIN = m_kk;
....
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Liza
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 18.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2009, 14:21     Titel:
  Antworten mit Zitat      
oh sorry. du hast mir mit dem num2str ja schon meine Lösung geliefert. SUPER

danke
Private Nachricht senden Benutzer-Profile anzeigen
 
alex85
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 06.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2009, 01:58     Titel:
  Antworten mit Zitat      
Ich bekomme in einer for-Schleifen Daten geliefert, die ich jeweils in ein mat-File ablege:

Code:
save([name,'.mat'], name);


'name' gibt mir immer einen anderen String zurück. Nun möchte ich die einzelnen Variablen parallel noch alle zusammen in einem mat-File ablegen. Das habe ich folgendermaßen probiert:

Code:
save('auswertung.mat', name, -append);


Das funktioniert aber nur, solange auswertung.mat schon existiert. Habe probiert, einfach über

Code:
save('auswertung.mat')
save('auswertung.mat', name, -append);


das Problem zu umgehen. Da speichert es mir dann aber den kompletten Workspace in das File. Was muss ich anders machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.11.2009, 13:44     Titel:
  Antworten mit Zitat      
Hallo,
wenn ich richtig verstanden, dann wird Speichern von auswertung.mat auch in FOR-Schleife gemacht?

dann versuch es mal über IF abfrage abzufangen:
Code:

if exist('auswertung.mat','file')
  save('auswertung.mat', name, '-append');
else
  save('auswertung.mat', name);
end
 


Zuletzt bearbeitet von denny am 23.11.2009, 14:57, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
alex85
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 06.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2009, 14:56     Titel:
  Antworten mit Zitat      
Genau, save(...) wird in der for-Schleife ausgeführt.
Dein Vorschlag hat wunderbar funktioniert, danke!
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.