我有一个文件夹,里面有很多.csv文件。我需要一次加载一个文件并执行一些操作。我尝试使用csvread和xlsread命令在循环中加载文件,但不起作用。我的文件是.csv格式的,但csvread不会读取它,因为我的文件包含文本和数字。因此,我使用了‘`xlsread’,但是我得到错误,说找不到file.csv。我不确定问题出在哪里。我使用以下代码在循环中读取文件:
files=dir('foldername');
N=length(files);
for i=1:N
thisfile=xlsread(files(i).name);
end变量文件以结构的形式读取,它显示文件名、文件位置、字节和日期。为了读取文件的内容,我应该转换为数组吗?
发布于 2017-06-21 00:08:10
dir的输出将包括条目.和..,以及'foldername'中的任何其他子文件夹,因此您需要首先删除这些条目。你可以这样做:
files = dir('foldername');
files = files(~[files.isdir]);或者,正如Vahe Tshitoyan建议的那样,您可以只收集.csv文件,如下所示:
files = dir('foldername\*.csv');如果你在文件夹中有任何其他你不想处理的文件,你绝对应该使用第二种方法。
您可以使用dir返回的结构的'folder'字段,并将其与文件名一起传递给fullfile,如下所示:
for i = 1:N
thisfile = xlsread(fullfile(files(i).folder, files(i).name));
% Subsequent processing
endhttps://stackoverflow.com/questions/44657977
复制相似问题