将目录中的所有CSV文件导入MATLAB中的数据存储区

时间:2017-12-28 11:12:51

标签: matlab csv datastore

我在目录中有450个*.csv个文件,我想将所有这些文件收集/导入一个 datastore进行进一步处理。我使用以下代码将所有CSV文件收集到一个数据存储区中。

       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

但是,我正面临着这个错误:

  

使用类对象进行数组形式和括号样式索引   'matlab.io.datastore.TabularTextDatastore'是不允许的。使用   类'matlab.io.datastore.TabularTextDatastore'的对象仅作为   标量或使用单元格数组。

我有两个问题:

1-如何使用更好的编码仅使用一个日期(only ds),两个(ds and ds_All)。< / p>

2-如果我的解决方案足够好,我该如何克服错误?

1 个答案:

答案 0 :(得分:0)

来自Matlab online help

  

ds = datastore(location)从location指定的数据集合中创建数据存储区。数据存储区是数据集合的存储库,这些数据集太大而无法放入内存中。创建ds后,您可以读取和处理数据。

因此,您似乎可以通过文件所在的文件夹初始化您的数据存储区。您是否尝试过

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