MATLAB学习文档(二十三)
目录
Q1: 创建结构体数组student
Q2: 分析JSON文件中的宝可梦数据
Q3: 导入文件夹中的xml和图片文件
Q4: 筛选工作区的数据
Q5: 王者荣耀玩家数据分析
Q6: 公历和农历日期转换
Q7: 839个站点的每日气温数据分析
Q1: 创建结构体数组student
% 创建一个包含3个学生的结构体数组students(1).name = 'Alice';students(1).age = 20;students(1).score = 90;students(2).name = 'Bob';students(2).age = 22;students(2).score = 85;students(3).name = 'Charlie';students(3).age = 21;students(3).score = 92;% 显示结构体数组disp(students);
Q2: 分析JSON文件中的宝可梦数据
% 假设有一个名为pokemon.json的文件filename = 'pokemon.json';% 读取JSON文件data = jsondecode(fileread(filename));% 显示部分数据以验证disp(data(1)); % 显示第一个宝可梦的数据% 分析示例:计算所有宝可梦的平均身高average_height = mean([data.height]);% 显示结果disp(['Average Height: ', num2str(average_height)]);
Q3: 导入文件夹中的xml和图片文件
% 假设xml和图片文件都在当前文件夹的subfolder子文件夹中folder = 'subfolder';xmlFiles = dir(fullfile(folder, '*.xml'));imgFiles = dir(fullfile(folder, '*.jpg')); % 假设图片为jpg格式% 读取第一个xml文件xmlData = xmlread(fullfile(xmlFiles(1).folder, xmlFiles(1).name));% 读取第一个图片文件imgData = imread(fullfile(imgFiles(1).folder, imgFiles(1).name));% 显示图片imshow(imgData);
Q4: 筛选工作区的数据
% 假设有一个名为data的数组,包含多列数据% 筛选条件:选择score列大于等于90的行filteredData = data(data.score >= 90, :);% 显示筛选后的数据disp(filteredData);
Q5: 王者荣耀玩家数据分析
% 假设有一个名为players的数组,包含玩家数据% 分析示例:计算平均胜率average_win_rate = mean(players.win_rate);% 显示结果disp(['Average Win Rate: ', num2str(average_win_rate), '%']);% 进一步分析:找出胜率最高的玩家[max_win_rate, idx] = max(players.win_rate);best_player = players(idx, :);% 显示最佳玩家信息disp('Best Player:');disp(best_player);
Q6: 公历和农历日期转换
% 公历转农历(需要自定义函数或调用第三方库,此处为示意)solar_date = datetime(2023, 10, 1);lunar_date = solarToLunar(solar_date); % 假设solarToLunar为转换函数% 显示农历日期disp(['Lunar Date: ', lunar_date]);% 农历转公历(同样需要自定义函数或调用第三方库)lunar_date = '2023-08-11';solar_date = lunarToSolar(lunar_date); % 假设lunarToSolar为转换函数% 显示公历日期disp(['Solar Date: ', solar_date]);
Q7: 839个站点的每日气温数据分析
% 假设有一个名为temperature的数据矩阵,每行代表一个站点,每列代表一天% 分析示例:计算每个站点的平均气温average_temperatures = mean(temperature, 2); % 计算每行的平均值% 显示部分结果disp('Average Temperatures for Some Stations:');disp(average_temperatures(1:10)); % 显示前10个站点的平均气温% 可视化:绘制某个站点的气温变化图station_id = 1; % 选择第一个站点plot(temperature(station_id, :));title(['Temperature Trend for Station ', num2str(station_id)]);xlabel('Day');ylabel('Temperature (°C)');