1

我有一个包含许多 .csv 文件的文件夹。我需要一次加载一个文件并执行一些操作。csvread我尝试使用and命令循环加载文件,xlsread但它不起作用。我的文件采用 .csv 格式,但csvread由于我的文件包含文本和数字,因此无法读取。因此,我使用了“xlsread”,但我收到错误消息,提示找不到 file.csv。我不确定问题是什么。我使用以下代码循环读取文件:

  files=dir('foldername');
  N=length(files);
  for i=1:N
      thisfile=xlsread(files(i).name);
  end

变量文件作为结构读取,它显示文件名、文件位置、字节和日期。我应该转换为数组以读取文件的内容吗?

4

1 回答 1

2

的输出dir将包括条目...以及 中的任何其他子文件夹'foldername',因此您需要先删除这些子文件夹。你可以这样做:

files = dir('foldername');
files = files(~[files.isdir]);

或者,正如 Vahe Tshitoyan 建议的那样,您只能收集​​.csv文件,如下所示:

files = dir('foldername\*.csv');

如果您不想在文件夹中处理任何其他文件则绝对应该使用第二种方法。

如果您收到一条错误消息,指出在您的调用中找不到该文件,xlsread这可能意味着您需要指定文件的完整路径,而不仅仅是文件名。您可以使用由'folder'返回的结构的字段dir并将其与文件名一起传递给fullfile,如下所示:

for i = 1:N
  thisfile = xlsread(fullfile(files(i).folder, files(i).name));
  % Subsequent processing
end
于 2017-06-20T16:08:10.060 回答