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

Datenverarbeitung vieler Dateien

 

Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 16:14     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Schönen guten Tag zusammen,

ich habe hier schon einige Beiträge gelesen und hoffe, ich bin mit meinem Problem / Bearbeitung hier richtig.

Wie relativ viele hier möchte ich Matlab für die Datenverarbeitung benutzen. Ich bin im wissenschaftlichen Bereich tätig, aber noch nicht so perfekt in der Anwendung von Matlab. Die help .docs haben zwar schon eine Menge geholfen, aber bei einigen Dingen brauch man einfach etwas Hilfe.

Folgendes Problem, ich habe mehrere Ordner mit mehreren Messdateien mit folgendem Aufbau:

Code:

Data file   Info   Minimum   Mean   Max   Range
2.out       2.1     -3.1         1.9       3.2    4.9
4.sum     91.2     4.9         2.5       2.9    1.2
 


Nun haben leider alle Dateien innerhalb eines Ordners alle andere Dateinamen (Diese sind aber in jedem Ordner gleich).

nun habe ich folgendes vor:
Ich möchte von jeder Datei im Ordner (idealerweise von allen Ordnern auf mal) alle Dateien so verarbeiten, dass von jeder Datei die Spalte "Minimum" nach seinem Minimum durchsucht wird (hierbei wird der Vektor mit Hilfe der "reshape" Funktion in 7er Blöcke zerlegt und aus jedem Block das Minimum ermittelt und am Ende wieder als Vektor geschrieben) und als Variable abgespeichert werden.
Wenn also meine Datei 2.out heißt, soll es am Ende eine Variable 2.out_min geben, wo nur die Minimumwerte der Spalte Minimum drinstehen.
Ich hoffe man kann es verstehen, sonst versuche ich es gerne nochmal anders zu beschreiben.

Jetzt mein Problem, wie baue ich sowas am einfachsten auf?
Die Dateien einlesen ist mit textscan ja soweit machbar, aber wie verarbeite ich diese dann, dass ich mein Ziel erreiche? Und wie speicher ich diese mit dem Namenszusatz "min"?

Würde mich über jede Hilfe freuen.


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.09.2013, 16:30     Titel:
  Antworten mit Zitat      
also
Code:
ist schonmal richtig. kannst dur auch noch
Code:
angucken.
um die dateinamen zu erhalten würde ich
Code:
benutzen
variablen dynamisch zu bennen ist immer so eine sache. meist meist sorgt das für mehr aufwand als nutzen. grade wenn es darum geht diese daten später noch weiter zuverarbeiten. wenn du unbedingt den dateinamen mit im variablen namen haben willst würde ich eine struct benutzen um die sachen zu speichern.
so in der art:
Code:
data.out2.minima
wie man die dynamisch bennen findest du auch in der doc. ist recht simpel und man kommt später über fieldnames an die namen wieder ran. am einfachsten wäre es allerdings die werte in einer cell zu speichern falls der dateiname nicht so wichtig ist.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 16:39     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Hallo Winkow,

vielen Dank für deine schnelle Antwort.
Bisher habe ich Dateien immer mit textscan eingelesen

Code:

fid=fopen('test.sum');
    C=textscan(fid, '%s %f %f %f %f %f %f %f %f %f %f %f %f','Headerlines',6);
fclose(fid)
 


Wie im Code wird ja nun alles eingelsen nach dem Header. Jetzt habe ich allerdings das zusätzliche Problem, dass am Ende der Dateien auch noch ein Test steht.
Gibt es eine möglichkeit mit Textscan gezielt aus Bereiche zuzugreifen?
Also als Beispiel nur auf die Zeilen 7:25 der entsprechenden Spalten.
Spalten kann ich ja soweit ich glaube ich durch

Code:


ignorieren.

Ich werde mir textread mal angucken.
Jede Hilfe hilft.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.09.2013, 16:43     Titel:
  Antworten mit Zitat      
am einfachsten ist immer wenn du eine beispiel datei hochlädst. dann muss man nicht soviel raten beim rumprobieren. bei
Code:
kann man einstellen welche breiche man lesen will. wenn die allderings unterschiedlich groß sind von datai zu datei wirds schon schwerer. alternativ kannst du auch mal im fileexchange nachgucken ob dort jemand schon etwas geschrieben hat was dir hilft.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 17:24     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Glücklicherweise sind die Bereiche alle Gleich, also alle Dateien haben die gleiche Anzahl an Zeilen.

Also ich habe jetzt mal textread angewendet:

Code:

[str1, str2, col3, col4, min, mean, max, col8, col9, col10, col11, col12,col13] = textread('GenPwr.sum','%s %s %f %f %f %f %f %f %f %f %f %f %f','headerlines',6);
a=reshape(min, 15,[])
min(a)
 


das reshape funktioniert super soweit. Es entstehen wie gewünscht 15er "Vektoren". Nur wenn ich jetzt hieraus aus jedem Vektor das Minimum mit min(a) berechnen möchte, klappt es leider nicht.

Code:

Subscript indices must either be real positive integers or logicals.
 


Diese Fehlermeldung bekomme ich hierbei.

Auf manuellem Weg funktioniert es jedoch in Matlab.

Muss ich hier bei Berechnungen irgendwie einen anderen Weg gehen?
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.09.2013, 17:30     Titel:
  Antworten mit Zitat      
nein aber du hast die funktionen min mean und max mit variablen namen überschrieben.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 17:36     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Ach na klar, wie peinlich.
Sorry, mein Fehler. Ruft stark nach einer Pause.

Klar, jetzt gehts!

Jetzt habe ich noch das Problem, dass meine Datei ja "GenPwr.sum" heißt.
Die berechneten Minima möchte ich nun herne als:
GenPwr_min speichern.

Dafür könnte ich "dir" verwenden richtig?

Dann bin ich ja schonmal ein kleines Stück weiter.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.09.2013, 17:38     Titel:
  Antworten mit Zitat      
Zitat:
Die berechneten Minima möchte ich nun herne als:
GenPwr_min speichern.

das geht mit eval und so weiter. ich kann dir davon aber nur abraten. das birgt sehr viele probleme. es ist kaum zu debuggen und die leute die später mal mit dem programm arbeiten müssen werden dich verfluchen Smile
benutze entweder cells oder so wie ich oben bereits gesagt habe structs.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 17:41     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Okay, danke dir, dann werde ich mich damit mal befassen.
Bis hierher schonmal danke.

Noch eine kurze Rückfrage, wie kann ich Variable aus dem Workspace löschen mittels Befehl? Und lassen sich mehrere gespeicherte Workspaces zusammenführen?
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.09.2013, 17:44     Titel: Re: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Zitat:
gespeicherte Workspaces
was soll das sein ? ^^
workspace lässt sich mit clear löschen. bei bestimmten variablen kann man das auch mit angeben. sei aber vorsichtig was du löscht.
versuche zb unbedingt auf clear all zu verzichten.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 17:53     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Ja genau, ich habe es mit

Code:


gemacht.

Also wenn ich jetzt eine Menge an Variablen in meiner Workspace habe, beispielsweise von einem Projekt, kann ich diese Variablen ja speichern, indem ich den Workspace speicher.
Wenn ich dies nun bei 2 Projekten mache (unter der Voraussetzungen, dass die Variablen sich unterscheiden) kann ich beide Workspaces zusammenführen und ALLE Variablen in einer Workspace zur verfügung haben um diese gegeneinander zu plotten beispielsweise.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 13.09.2013, 17:55     Titel:
  Antworten mit Zitat      
mit
Code:
kann man mat dateien laden findet man aber auch mit google oder bissel in der doc suchen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 18:03     Titel: Datenverarbeitung vieler Dateien
  Antworten mit Zitat      
Alles klar, dann danke ich bis hierhin für die Hilfe.
 
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.