2017-12-28 22 views
0

importieren habe ich 450 *.csv Dateien in einem Verzeichnis und ich mag/all in eindatastore für die Weiterverarbeitung von ihnen importieren sammeln. Ich habe den folgenden Code zum Sammeln aller CSV-Dateien in einem Datenspeicher verwendet.alle CSV-Dateien aus einem Verzeichnis in Datastor in MATLAB

 Path = 'Data/Dataset Collection/'; 
     Files = dir(Path); 
     for k = 1 : length(Files) 
      FileNames = Files(k).name; 

      if (~strcmp(FileNames, '.')) 
       if (~strcmp(FileNames, '..')) 
        ds = datastore([Path FileNames], 'TreatAsMissing', 'NA'); 

        if k == 3 
        ds_All = ds; 
        else 
        ds_All = [ds_All ds]; 
        end 
       end 
      end 

Aber ich bin vor mit diesem Fehler:

Array formation and parentheses-style indexing with objects of class 'matlab.io.datastore.TabularTextDatastore' is not allowed. Use objects of class 'matlab.io.datastore.TabularTextDatastore' only as scalars or use a cell array.

Ich habe zwei Fragen:

1- Wie kann ich die bessere Codierung verwenden nur ein datesotre verwenden (only ds), NICHT zwei (ds and ds_All).

2- Wenn meine Lösung gut genug ist, wie kann ich den Fehler beheben?

+1

Ich glaube, der Fehler aus der Leitung kommt. 'ds_All = [ds_All ds];'. Was soll diese Linie tun? –

+0

@AmosEgel, Ich werde jeden einzelnen ds, der jede einzelne CSV-Dateien ist, in einen endgültigen Datenspeicher als ds_All sammeln. Andernfalls: Wie kann ich sie einzeln in einem einzigen Datenspeicher sammeln? –

+0

@SardarUsama, ja, weil ich MapReduce und CSV-Dateien alle zusammen 2GB Daten verwenden würde. –

Antwort

0

Vom Matlab online help:

ds = datastore(location) creates a datastore from the collection of data specified by location. A datastore is a repository for collections of data that are too large to fit in memory. After creating ds, you can read and process the data.

So scheint es, können Sie Ihre Datenspeicher durch den Ordner nur initialisieren, wo die Dateien sind in Haben Sie versucht

Path = 'Data/Dataset Collection/'; 
ds = datastore(Path); 
+0

Danke. Es funktioniert korrekt. –

Verwandte Themen