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

mehrere .csv Dateien einlesen und zusammenführen

 

andyroithi
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 29.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2014, 14:56     Titel: mehrere .csv Dateien einlesen und zusammenführen
  Antworten mit Zitat      
Hallo zusammen,

ich habe mehrere Dateien im Format 'xxx (1).csv','xxx (2).csv' usw. Die Dateien besitzen alle 6 Spalten und werden mit
Code:
 
M1=dlmread('xxx (1).csv',';',[5 1 15005 5]);  


eingelesen und auf dieselbe Länge gekürzt.
Ich würde gerne mit einer for-Schleife alle Dateien aus einem Ordner einlesen und in einer Matrix zusammenfügen.
Die vierte Spalte ist in jeder Datei eine fortlaufende Zahl von 1 bis 15000. Diese bräuchte ich als fortlaufende Zahl durch die gesamte Matrix also für die erste Datei von 1-15000,für die zweite Datei von 15001-30000 usw.
Für einzelne Dateien sieht mein code so aus:

Code:

M2(:,1)=M2(:,1)+x;
M3(:,1)=M3(:,1)+x*2;
M=[M1;M2;M3];
 


Mein Problem liegt darin, dass ich die for-Schleife nicht hinkriege, vor allem das Einlesen der verschiedenen Dateien.
Vielen Dank schonmal für eure Antworten
(ich weis, dass dieses Problem schon öfter behandelt wurde, aber ich kenn mich mit matlab noch nicht so gut aus und habe auch mithilfe anderer Lösungsvorschläge noch keine richtige Lösung erreicht)
Private Nachricht senden Benutzer-Profile anzeigen


Gio2
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 13.03.14
Wohnort: Frankfurt
Version: ---
     Beitrag Verfasst am: 29.10.2014, 15:55     Titel:
  Antworten mit Zitat      
Hi, ich verstehe dein Problem nicht ganz.
Deshalb kurz, was ich verstanden habe:
Du willst alle Dateien aus einem Ordner einlesen und diese Daten dann in einer Matrix darstellen.

Code:
path = 'E:\Programme\MATLAB704\work\Matlab\Messreihe\Matrix';
liste = dir(path);
files = {liste.names};
for k=1:numel(files)
    % einlesen der Dateien
    fid = fopen(fullfile(path,files{k}),'r');
    daten{k} = textscan(fid,'%s');
    % ...
close (fid)
end


bzw kannst die schleife auch mit length der ganzen Datennamen erstellen
Private Nachricht senden Benutzer-Profile anzeigen
 
andyroithi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 29.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2014, 09:11     Titel:
  Antworten mit Zitat      
Danke für die Antwort.
Ich habe schon fast befürchtet, dass es etwas unklar war. Mein Problem ist, ich habe in einer Spalte die Nummer der Messung, die von 1 bis zum Ende der Datei hochzählt. In der nächsten Datei fängt sie wieder bei 1 an. Wenn ich die Dateien einfach untereinander zusammenfüge, habe ich in dieser spalte immer Zahlen von 1-15000. Ich hätte aber gerne, dass die 2. Datei nach der ersten weiterzählt also 15001,15002 usw.
ich hoffe es ist jetzt verständlicher Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 30.10.2014, 09:34     Titel:
  Antworten mit Zitat      
Moin,

zB.
Code:
A = [rand(15,3) (1:15)';
    rand(15,3) (1:15)';
    rand(15,3) (1:15)'];

A(:,4) = (1:size(A,1))';


Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
andyroithi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 29.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2014, 16:54     Titel:
  Antworten mit Zitat      
Hi,

ist zwar nicht der Lösungsweg den ich im Sinn hatte, aber das Ergebnis stimmt;) Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 30.10.2014, 17:10     Titel:
  Antworten mit Zitat      
andyroithi hat Folgendes geschrieben:
ist zwar nicht der Lösungsweg den ich im Sinn hatte

Den anhand der gegebenen Infos zu erraten, fand ich schwer. Ein lauffähiges Minimalbeispiel ist idR. sehr hilfreich und die Fehlerbeschreibung könnte etwas eindeutiger sein Wink

Klappt der Datenimport denn?

Zitat:
aber das Ergebnis stimmt;)

Immerhin Very Happy

Grüße
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
liselise
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 14.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2016, 15:28     Titel:
  Antworten mit Zitat      
Oder du baust dir die online zusammen. zb hier CSV Dateien zusammenführen
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.