《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门

目录

2.1.3 快速入门案例

2.2 matlab常用技巧

2.3 matlab开发模式

第二章所用数据


2.1.3 快速入门案例

  • 最好的学习方式是基于项目学习(Project Based Learning, PBL),这让学习的目标更具体,更容易让学习的知识转化成实实在在的成果,让学习者觉得学有所成,并快速建立自信

第一阶段 : 利用matlab从外部(Excel)读取数据

step1.1 在当前文件夹中选取需要的数据文件(案例中为Excel),右击

step1.2 选择导入数据项,显示下图

《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门_第1张图片

 

step1.3 在该界面右上角有个“导入所选内容” ,输出类型选择列向量

第二阶段:数据探索和建模

step2.1 查看数据统计信息,了解数据。双击工作区(顶部蓝色背景区)得到所有变量的详细统计信息。《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门_第2张图片

 

(但是我一开始只有“名称”和“值”两栏,所以右击那一栏就可以多选几个表头,如下图)《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门_第3张图片

 

step2.2 在工作区选中变量DataNum(日期)和Pclose(收盘价),在绘图面板中单击plot图标,得到两个变量可视化结果

或者说在命令窗口区显示绘制此图的命令

plot(DateNum,Pclose)

  • 《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门_第4张图片最直接获取帮助的两个命令:doc和help,新手推荐使用doc,可以直接参考实例,将实例快速转化成自己需要的代码

     

然后需要考虑如何评估股票的价值和风险。经过分析,我们要计算曲线斜率和最大回撤,计算斜率用多项式拟合的方法来拟合该组数据,但是对于新手来说,并不清楚用什么命令进行拟合,因此在主面板靠近右侧单击“帮助”打开帮助系统,在搜索框搜索关键词“polyfit”即可查阅

具体代码:

step2.3 多项式拟合,计算股票价值

 >>p =polyfit(DateNum,Pclose,1); %多项式拟合
 >> value = p(1) %将斜率赋值给value,作为股票的价值
 value =
     0.122

step2.4 得到计算最大回撤的代码

 
>> MaxDD= maxdrawdown(Pclose); %计算最大回撤
 >> risk = MaxDD %将最大回撤赋值给risk,作为股票风险
 risk=
     0.1155

命令行不能很方便的修改代码,脚本才是matlab中最经典的用法,它不仅能否完整地呈现整个问题的解决方法,而且便于维护、完善、执行。

step2.5 像step1.1 ,重新选择数据文件并右击,在快捷菜单中选择“导入数据”项,选择“生成脚本”,并保存

step2.6 从命令历史中选择有用的命令复制到2.5,得到完整脚本

 
%% 导入数据
 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, 作为股票的风险

第三阶段:发布

展示形式:

①能独立运行的程序

②报告或论文(常用且实用)

③软件和应用(更适合大中型项目)

step3.1 在脚本编辑器的“发布”面板,从其下拉菜单中选择“编辑发布”选项,打开发布“编辑配置”界面《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门_第5张图片

 

step3.2 将输出文件格式改为word(word更常用,便于编辑,尤其是对于写报告或论文),然后单击“发布”按钮

2.2 matlab常用技巧

2.2.1 常用标点的功能

  • 在英文状态下输入

  • 常见标点符号功能

    1. 逗号(,) 用作要显示计算结果的指令与其后面的指令之间的分隔;用作输入量与输入量 之间的分隔;用作数组元素的分隔

    2. 分号(;) 用作不显示计算结果指令的结尾标志;用作不显示计算结果的指令与其后面的 指令之间的分隔;用作数组行间的分隔

    3. 冒号(:) 用以生成一维数值数组;用作单下标援引时,表示全部元素构成的长列;用作 下标援引时,表示对应维度上的全部元素

    4. 注释号(%) 由它起头的所有物理行被视为非执行的注释

    5. 单引号(‘’) 字符串标记符。

    6. 圆括号() 在数组援引时用;函数指令时表示输入变量

    7. 方括号[] 输入数组时用;函数指令时表示输出变量

    8. 花括号{ } 元胞数组标记符。

    9. 续行号(...) 由三个以上连续黑点构成。可视为其下的物理行是该行的逻辑继续,以构成一个较长的完整指令。

2.2.2 常见指令操作

clc 清除指令窗口中显示的内容。 clear 清除MATLAB工作空间中保存的变量。 close all 关闭 所有打开的图形窗口。 clf 清除图形窗的内容 edit 打开m文件编辑器。 disp 显示变量的内容

2.2.3 指令编辑操作键

↑ 前寻调回已输入过的指定行。 ↓ 后寻调回已输人过的指定行。 Tab 补全命令。

2.2.4 matlab数据类型《MATLAB数学建模方法与实践(第三版)》学习笔记——第二章 MATLAB数学建模快速入门_第6张图片

元胞数组是matlab中的一种特殊数据类型,可以将元胞数组视为无所不包的通用矩阵,或叫广义矩阵。组成元胞数组的元素可以是任何数据类型的常数或常量。

 

表在支持数据类型方面与元胞数组相似,能包含所有数据类型,但表在展示数据操作数据上更有优势。

2.3 matlab开发模式

2.3.1 命令行模式

即在命令行窗口区进行交互式的开发模式。命令行模式非常灵活,并且能够很快给出结果。所以适合单个的小型科学计算问题的求解,比如解方程、拟合曲线等操作;也比较适合项目的探索分析、建模等工作,比如在入门案例中介绍的数据绘图、拟合,求最大回撤。命令行模式的缺点是不便于重复执行,也不便于自动化执行科学计算任务

2.3.2 脚本模式

脚本模式是MATLAB最常见的开发模式,在该模式,我们可以很方便地进行代码的修改,也可以继续更复杂的任务。脚本模式的优点是便于重复执行计算,并可以将整个计算过程保存在脚本中,移植性比较好,同时也非常灵活

2.3.3 面向对象模式

面向对象编程是一种正式的编程方法,它将数据和相关操作(方法)合并到逻辑结构(对象)中。该方法具有可提升管理软件复杂性的能力,在开发和维护大型应用与数据结构时尤为重要。 能够在MATLAB中定义类并应用面向对象的标准设计模式,可实现代码重用继承、封装以及参考行为,。MATLAB面向对象开发模式更适合稍微复杂一些的项目,更有效地组织程序的功能模块,便于项目的管理、重复使用,同时使得项目更简洁,更容易维护。

2.3.4 三种模式配合

三种开发模式并不是孤立的,而是相互配合、不断提升的。在项目初期,基本以命令行的脚本模式为主,逐渐形成脚本;随着成熟度天生,就要使用面向对象的开发模式,将功能模块改写成函数的形势,加强程序重复调用。

第二章所用数据

链接:https://pan.baidu.com/s/1o9dhGCkOS3FC9iYZm1nhQg?pwd=zjvv 
提取码:zjvv

你可能感兴趣的:(matlab,开发语言,学习)