写在最前面
快速从零入门matlab数学建模,从数据预览(绘制)、预处理、常用建模方法到机器学习、小波去噪等其他建模方法
注:为书的阅读笔记
《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著.
代码在Cha2文件夹下
笔记1:快速入门
1.导入数据
2.数据探索
3.多项式拟合
4.发布功能
5.数据类型
6、全部代码
% MATLAB 入门案例 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. %% 导入数据 clc, clear, close all % 导入数据 [~, ~, raw] = xlsread('sz000004.xls','Sheet1','A2:H99'); % 创建输出变量 data = reshape([raw{:}],size(raw)); % 将导入的数组分配给列变量名称 Date = data(:,1); DateNum = data(:,2); Popen = data(:,3); Phigh = data(:,4); Plow = data(:,5); Pclose = data(:,6); Volum = data(:,7); Turn = data(:,8); % 清除临时变量 clearvars data raw; %% 数据探索 figure % 创建一个新的图像窗口 plot(DateNum,Pclose,'k') % 更改图的的颜色的黑色(打印后不失真) datetick('x','mm');% 更白日期显示类型 xlabel('日期'); % x轴说明 ylabel('收盘价'); % y轴说明 figure bar(Pclose) % 作为对照图形 %% 股票价值的评估 p = polyfit(DateNum,Pclose,1); % 多项式拟合, % 分号作用为不在命令窗口显示执行结果 P1 = polyval(p,DateNum); % 得到多项式模型的结果 figure plot(DateNum,P1,DateNum,Pclose,'*g'); % 模型与原始数据的对照 value = p(1) % 将斜率赋值给value, 作为股票的价值。 %% 股票风险的评估 MaxDD = maxdrawdown(Pclose); % 计算最大回撤 risk = MaxDD % 将最大回撤赋值给risk, 作为股票的风险
笔记2:数据的准备
1.数据的读取与写入
excel、txt
P23-25
读图
cha3
ReadImages
%% 读取图片 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. clc, clear, close all a1=imread('000.bmp'); [m,n]=size(a1); %% 批量读取图片 dirname = 'ImageChips'; files = dir(fullfile(dirname, '*.bmp')); a=zeros(m,n,19); pic=[]; for ii = 1:length(files) filename = fullfile(dirname, files(ii).name); a(:,:,ii)=imread(filename); pic=[pic,a(:,:,ii)]; end double(pic); figure imshow(pic,[])
此外参考https://blog.csdn.net/WTYuong/article/details/122626337
图像识别系列
读视频
选取某帧数图像进行图像层面的分析
cha3
readVideo
%% 读取视频数据 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. videoFReader = vision.VideoFileReader('vippedtracking.mp4'); % 播放视频文件 videoPlayer = vision.VideoPlayer; while ~isDone(videoFReader) videoFrame = step(videoFReader); step(videoPlayer, videoFrame); end release(videoPlayer); %% 设置播放方式 % 重置播放器 reset(videoFReader) % 增加播放器的尺寸 r = groot; scrPos = r.ScreenSize; % Size/position is always a 4-element vector: [x0 y0 dx dy] dx = scrPos(3); dy = scrPos(4); videoPlayer = vision.VideoPlayer('Position',[dx/8, dy/8, dx*(3/4), dy*(3/4)]); while ~isDone(videoFReader) videoFrame = step(videoFReader); step(videoPlayer, videoFrame); end release(videoPlayer); reset(videoFReader) %% 获取视频中的图像 videoFrame = step(videoFReader); n = 0; while n~=15 videoFrame = step(videoFReader); n = n+1; end figure, imshow(videoFrame) release(videoPlayer); release(videoFReader)
2.数据预处理
P27
缺失值
删除、插补(均值、回归、极大似然估计(期望值最大化))
噪声过滤
回归、平滑、离群点分析、小波过滤
#3# 数据集成
建模比赛没有
数据归约
属性选择、样本选择
相关性分析、主成分分析
数据变换
P33
标准化、离散化、语义转换
3.数据统计
4.数据可视化
P431.m
原始分布形态,了解大致分布中心、边界、数据集中度
柱状分布图
图3-8即为用hist绘制的变量的柱状分布图,该图的优势是更直观地反映了数据的集程序。由该图可以看出,变量dv3过于集中,这对数据建模是不利的,相当于这个变量基本是固定值,对任何样本都是一样的,所以没有区分效果,这样的变量就可以考虑删除了。可见数据进行可视化分析,意义还是很大的。
% 数据可视化——基本绘图 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. % 读取数据 clc, clear al, close all X=xlsread('dataTableA2.xlsx'); % 绘制变量dv1的基本分布 N=size(X,1); id=1:N; figure plot( id', X(:,2),'LineWidth',1) set(gca,'linewidth',2); xlabel('编号','fontsize',12); ylabel('dv1', 'fontsize',12); title('变量dv1分布图','fontsize',12); % 同时绘制变量dv1-dv4的柱状分布图 figure subplot(2,2,1); hist(X(:,2)); title('dv1柱状分布图','fontsize',12) subplot(2,2,2); hist(X(:,3)); title('dv2柱状分布图','fontsize',12) subplot(2,2,3); hist(X(:,4)); title('dv3柱状分布图','fontsize',12) subplot(2,2,4); hist(X(:,5)); title('dv4柱状分布图','fontsize',12)
常见统计量绘制于分布图中
P432.m
% 数据可视化——数据分布形状图 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. % 读取数据 clc, clear al, close all X=xlsread('dataTableA2.xlsx'); dv1=X(:,2); % 绘制变量dv1的柱状分布图 h = -5:0.5:5; n = hist(dv1,h); figure bar(h, n) % 计算常用的形状度量指标 mn = mean(dv1); % 均值 sdev = std(dv1); % 标准差 mdsprd = iqr(dv1); % 四分位数 mnad = mad(dv1); % 中位数 rng = range(dv1); % 极差 % 标识度量数值 x = round(quantile(dv1,[0.25,0.5,0.75])); y = (n(h==x(1)) + n(h==x(3)))/2; line(x,[y,y,y],'marker','x','color','r') x = round(mn + sdev*[-1,0,1]); y = (n(h==x(1)) + n(h==x(3)))/2; line(x,[y,y,y],'marker','o','color',[0 0.5 0]) x = round(mn + mnad*[-1,0,1]); y = (n(h==x(1)) + n(h==x(3)))/2; line(x,[y,y,y],'marker','*','color',[0.75 0 0.75]) x = round([min(dv1),max(dv1)]); line(x,[1,1],'marker','.','color',[0 0.75 0.75]) legend('Data','Midspread','Std Dev','Mean Abs Dev','Range')
数据关联
P433.m
% 数据可视化——变量想相关性 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. % 读取数据 clc, clear al, close all X=xlsread('dataTableA2.xlsx'); Vars = X(:,7:12); % 绘制变量间相关性关联图 figure plotmatrix(Vars) % 绘制变量间相关性强度图 covmat = corrcoef(Vars); figure imagesc(covmat); grid; colorbar;
箱型图
% 数据可视化——数据分组 % 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. % 读取数据 clc, clear al, close all X=xlsread('dataTableA2.xlsx'); dv1=X(:,2); eva=X(:,12); % Boxplot figure boxplot(X(:,2:12)) figure boxplot(dv1, eva) figure boxplot(X(:,5))