我真的是matlab编程的新手。我在编码时遇到问题,要将多个csv文件导入某个文件夹中的一个:
这是我的代码:
%% Importing multiple CSV files
myDir = uigetdir; %gets directory
myFiles = dir(fullfile(myDir,'*.csv')); %gets all csv files in struct
for k = 1:length(myFiles)
data{k} = csvread(myFiles{k});
end
我使用代码uigetdir以便能够从任何文件夹中选择数据,因为我尝试制作自动化程序,以便其他人可以灵活使用。我运行的代码只查找目录并显示列表,但不是用于将csv文件合并为一个并在“导入数据”中读取它。我希望它被合并并作为一个文件读取。 我的合并文件看起来应该用分号分隔,并且由47个csv文件合并在一起(这张图片是我拥有的csv文件之一): my merged file
我一直在为它工作一整天,但我总是发现错误代码。请帮帮我:(。非常感谢您的帮助。
答案 0 :(得分:0)
如错误消息所述,您尝试将myFiles
作为单元格数组引用。 dir
的输出是一个结构,不能像单元格数组那样被索引。
您想要执行以下操作:
for k = 1:numel(myFiles)
filepath = fullfile(myFiles(k).folder, myFiles(k).name);
data{k} = csvread(filepath);
end