使用xlsread和csvread时出错

时间:2017-06-20 16:05:00

标签: matlab xlsread

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

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

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

1 个答案:

答案 0 :(得分: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