我有一个包含许多.csv文件的文件夹。我需要在一次加载一个文件并执行一些操作。我尝试使用csvread
和xlsread
命令在循环中加载文件,但它不起作用。我的文件采用.csv格式,但csvread
无法读取,因为我的文件包含文本和数字。因此我使用了`xlsread',但是我收到错误,说无法找到file.csv。我不确定是什么问题。我使用以下代码来循环读取文件:
files=dir('foldername');
N=length(files);
for i=1:N
thisfile=xlsread(files(i).name);
end
变量文件作为结构读取,它显示文件名,文件位置,字节和日期。我应该转换为数组才能读取文件的内容吗?
答案 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