【MATLAB实例】批量提取.csv数据并根据变量名筛选

【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);
                end
            end              
        end
    end
    
end

数据提取完成后,保存在Tmax2020变量中。

参考

上一篇:Java 解决阿里云OSS服务器私有权限图片通过URL无法预览的问题


下一篇:全桥LLC谐振变换器概述及MATLAB仿真