【MATLAB实例】批量提取.csv数据并根据变量名筛选
- 准备:数据说明
- MATLAB批量提取
- 参考
准备:数据说明
.csv数据如下:
打开某表格数据,如下:(需要说明的是此数据含表头)
需求说明:需要提取指定站点名对应数据
MATLAB批量提取
数据导入方法: 根据不同 .csv 文件内容,可能需要使用 readtable、readmatrix 或 csvread 等不同的函数来读取数据。如果你的文件有表头,推荐使用 readtable。
代码如下:
clear
clc
close all
%% 提取站点信息(StationID)StationID = [59271 59278 59478 59485 59287 59294 59289 59488 59298];
nStation = length(StationID);%% Tmax% 指定存放.csv文件的文件夹路径(替换为你的文件夹路径)
folderPath = 'D:\0 DataBase\0 GBA Database\1 Meteorological_Station_Data\2020_Daily Tmax'; % 获取该文件夹下所有的.csv文件
filePattern = fullfile(folderPath, '*.csv');
csvFiles = dir(filePattern);nDay = length(csvFiles);
% 初始化一个结构数组来存储提取的数据
Tmax2020 = zeros(nDay,nStation);% 循环遍历每一个.csv文件
for k = 1:length(csvFiles)% 构建完整的文件名baseFileName = csvFiles(k).name;fullFileName = fullfile(folderPath, baseFileName);% 导入CSV数据:请根据实际情况选择合适的方法导入数据% 数据有表头,使用 readtable 导入数据data = readtable(fullFileName);Name = data.('name' ); % 使用动态字段名提取Ta = data.('Ta_DegC_');% 将数据存储到Tmax变量中for idata=1:height(data)for iStation=1:nStation% 提取所需站点数据if strcmp( Name{idata,1} , num2str( StationID(iStation)) )if iscell(Ta)Tmax2020(k, iStation) = str2num( Ta{idata,1});elseif isnumeric(Ta)Tmax2020(k, iStation) = Ta(idata,1);endend endendend
数据提取完成后,保存在Tmax2020变量中。