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

.csv-Datei in mehrere Matrizen des Formates .mat umwandeln

 

tokencookie
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2014, 14:53     Titel: .csv-Datei in mehrere Matrizen des Formates .mat umwandeln
  Antworten mit Zitat      
Hallo zusammen,


ich will mehrere .csv-Dateien mit jeweils 13 Spalten in jeweils 12 .mat-Dateien mit nur noch zwei Spalten umwandeln. Dabei soll sich die erste Spalte (im Code als 'sampleNo' bezeichnet) immer wiederholen, die zweite wird variiert.
Im nächsten Schritt sollen die neuen Dateien dann mit dem alten Dateinamen und einem Zusatz wie "WG1" bis "WG12" abgespeichert werden, damit nichts überspeichert wird.
Das einlesen der Dateien funktioniert problemlos, allerdings kann er mit dem (versuchten) Loop bezüglich der zweiten, flexiblen Spalte wohl nichts anfangen. Fehlermeldung ist die folgende:

In an assignment A( : ) = B, the number of elements in A and B must be the same.

Error in csvtomat (line 9)
sensor(i) = FilePattern(:,2:i); % Position of...


Auf jeden Fall starre ich diesen Code jetzt schon so lange an, dass ich nicht mehr weiß wo hinten und vorne ist und hoffe, dass mir hier jemand weiter helfen kann.

Konkrete Frage ist erstmal, wie ich diese flexible zweite Spalte richtig definiere. Sollten euch aber noch grobfahrlässige Fehler auffallen, wäre ich für einen Hinweis (natürlich auch für eine direkte Lösung...) dankbar.
Man sieht, denke ich, dass es das Werk eines MatLab-Einsteigers ist.


Danke schonmal für's Lesen!

Nachtrag: Muss sich evtl. noch einen Zwischenschritt machen, bei dem die "Split-Dateien" zwischengespeichert und danach erst umgewandelt werden?


Code:


myFolder = 'C:\Users\Bethy\Desktop\Wissenschaftliche_Arbeiten\Masterarbeit\ANALYSE\Spectral analysis';
FilePattern = fullfile(myFolder, '*_dot.csv');
WG = dir(FilePattern);

sampleNo   = FilePattern(:,1); % time step 0.005
for i = 2:13;
sensor{i} = FilePattern(:,2:i); % Position of single columns representing each sensor
end

for k = 1:length(sensor{i});
  baseFileName = WG(k).name;
  fullFileName = sprintf('myFolder/%s/%s'.csv, baseFileName,'.mat');
  save(fullFileName,'sampleNo','sensor{i}');
end

 
Private Nachricht senden Benutzer-Profile anzeigen


tokencookie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2014, 15:24     Titel:
  Antworten mit Zitat      
keiner?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.08.2014, 21:26     Titel:
  Antworten mit Zitat      
Hallo,

Vor allem musst du die Daten irgendwann mal einlesen (in einfachen Fällen csvread, ansonsten textscan). Da .mat ein anderes Format als .csv ist, bleibt dir das nicht erspart.

Eine Empfehlung wäre vor allem auch, das erst mal für eine Datei zu testen und dann die Schleife drumherum zu machen, damit Fehlerquellen reduziert werden.

Was soll dieser Code denn eigentlich bezwecken?
Code:
sampleNo   = FilePattern(:,1); % time step 0.005
for i = 2:13;
sensor{i} = FilePattern(:,2:i); % Position of single columns representing each sensor
end


Grüße,
Harald


P.S.: insbesondere am Wochenende sollte man schon etwas mehr Geduld mitbringen. Mit dem 'Pushen' tust du dir da insofern keinen Gefallen, da manche Leute regelmäßig die 'unbeantworteten' Beiträge durchsehen - durch das 'Pushen' ist der Beitrag aber nicht mehr 'unbeantwortet'.
Private Nachricht senden Benutzer-Profile anzeigen
 
tokencookie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2014, 14:25     Titel: Danke
  Antworten mit Zitat      
Hallo Harald,


danke für die Tipps!

Zur Erklärung: Ich habe 12 csv-Dateien, in denen jede Spalte die Daten eines anderen Sensoren enthalten. Die erste Spalte ist entsprechend die Sample-Nummer, die noch in die Zeit umgerechnet werden soll.

Da ich mich derzeit mit Wavelet Transformation befasse, wollte ich die Daten als einzelne .mat-Signale haben, um das Wavelet GUI von MATLAB zu benutzen. Da scripte ich zwar auch fröhlich rum, aber man will ja alles mal ausprobieren. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.08.2014, 14:47     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt: du arbeitest bis jetzt nur mit den Dateinamen, aber nicht mit der Datei an sich.

Grüße,
Harald
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.