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

问题描述 投票:0回答:1

我在一个目录中有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)。

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

matlab csv datastore
1个回答
0
投票

来自Matlab online help

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

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

Path = 'Data/Dataset Collection/';
ds = datastore(Path);
© www.soinside.com 2019 - 2024. All rights reserved.