读取文件夹中多个csv文件,如果csv文件中的数据行数大于60,则截取中间30个数据,若不足60,则不对该csv文件处理,将处理好的csv文件保存,用matlab实现
时间: 2024-03-08 14:51:07 浏览: 127
读写CSV文件函数(代码)
4星 · 用户满意度95%
好的,可以使用MATLAB中的dir函数来获取文件夹中所有csv文件的名称,然后循环读取每个csv文件进行处理。具体代码如下:
```matlab
% 定义文件夹路径
folder_path = '/path/to/folder';
% 获取文件夹中所有csv文件的名称
csv_files = dir(fullfile(folder_path, '*.csv'));
% 循环读取每个csv文件进行处理
for i = 1:length(csv_files)
file_path = fullfile(csv_files(i).folder, csv_files(i).name);
data = readmatrix(file_path); % 读取csv文件中的数据
if size(data, 1) >= 60 % 如果数据行数大于等于60
start_row = floor((size(data, 1) - 30) / 2) + 1; % 计算起始行
end_row = start_row + 29; % 计算结束行
data = data(start_row:end_row, :); % 截取中间30个数据
output_file_path = fullfile(folder_path, ['processed_' csv_files(i).name]); % 定义输出文件路径
writematrix(data, output_file_path); % 将处理好的数据保存到输出文件中
end
end
```
以上代码中,`folder_path`变量需要替换成实际的文件夹路径。`dir`函数会返回文件夹中所有csv文件的名称,存储在`csv_files`变量中。然后使用循环依次读取每个csv文件,使用`readmatrix`函数读取csv文件中的数据,判断数据行数是否大于等于60,如果是,则计算起始行和结束行,使用切片操作截取中间30个数据。最后使用`writematrix`函数将处理好的数据保存到输出文件中。输出文件的名称为原文件名前加上`processed_`前缀。
阅读全文