MATLAB快速入门案例与技巧笔记

具体实现:

一、获取数据

直接在matlab中右键文件 - 导入数据,弹出对话框,可选择输出类型表、列向量、数值矩阵、字符串数组、元胞数组(matlab中常用变量类型,本文选择列向量),单击导入所选内容,数据成功导入变量。

     

导入所选内容下拉菜单选择生成脚本 ,matlab打开脚本对话框,并自动生成导入数据需要调用的代码。

代码如下:

%% 导入电子表格中的数据% 用于从以下电子表格导入数据的脚本:% 工作簿: C:\Users\Hao\Desktop\程序_MATLAB数学建模方法与实践_卓金武等\Cha2\sz000004.xls% 工作表: Sheet1% 由 MATLAB 于 2022-02-25 11:50:30 自动生成 %% 设置导入选项并导入数据opts = spreadsheetImportOptions("NumVariables", 8); % 指定工作表和范围opts.Sheet = "Sheet1";opts.DataRange = "A2:H99"; % 指定列名称和类型opts.VariableNames = ["Date1", "DateNum1", "Popen1", "Phigh1", "Plow1", "Pclose1", "Volum1", "Turn1"];opts.VariableTypes = ["double", "double", "double", "double", "double", "double", "double", "double"]; % 导入数据tbl = readtable("C:\Users\Hao\Desktop\程序_MATLAB数学建模方法与实践_卓金武等\Cha2\sz000004.xls", opts, "UseExcel", false); %% 转换为输出类型Date1 = tbl.Date1;DateNum1 = tbl.DateNum1;Popen1 = tbl.Popen1;Phigh1 = tbl.Phigh1;Plow1 = tbl.Plow1;Pclose1 = tbl.Pclose1;Volum1 = tbl.Volum1;Turn1 = tbl.Turn1; %% 清除临时变量clear opts tbl

二、数据探索和建模

2.1 分析数据

选定日期和收盘价作为重点研究对象,对数据进行数据可视化处理以更好的认识数据(试用plot)。

依次选择DateNum、Pclose(先选的对应x轴,后选对应y轴),然后点击绘图下的plot选项,生成二维线图。

代码如下:(曲线图和柱状图)

%% 数据探索figure % 创建一个新的图像窗口plot(DateNum,Pclose,'k') % 更改图的的颜色为黑色(打印后不失真)datetick('x','mm');% 更改日期显示类型xlabel('日期'); % x轴说明ylabel('收盘价'); % y轴说明figure bar(Pclose) % 条形图,作为对照图形


2.2 建模

我们选定两个参量来描述股票的价值和风险。

斜率(股票的价值)

最大回撤(股票的风险)

注:回撤是从一个时期开始到结束时总回报的百分比下降。如果总权益时间序列在整个期间都在增加,则回撤为 0。否则,它是一个正数。最大回撤是下行风险的事前代理,它计算在指定时间间隔内可以形成的所有时间间隔内的最大回撤。

如何得到曲线斜率?根据数据可视化结果,数据趋势大致呈线性,可将曲线拟合为线性。polyfit()

代码如下:(拟合后的曲线图及对照)

%% 股票价值的评估p = polyfit(DateNum,Pclose,1); % 多项式拟合% 分号作用为不在命令窗口显示执行结果P1 = polyval(p,DateNum); % 计算多项式 p 在 DateNum 的每个点处的值figureplot(DateNum,P1,DateNum,Pclose,'*g'); % 模型与原始数据的对照value = p(1) % 将斜率赋值给value, 作为股票的价值。

如何得到曲线最大回撤?maxdrawdown()

代码如下:

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

图形结果:

三、分享结果

1、做成能独立运行的程序,如脚本

2、报告或论文

3、软件和应用

做成脚本和软件,使应用更高效和模块化。而生成报告是比较实用的项目展示形式,对于写报告和论文,选择word格式更方便。



常用技巧

一、常用标点功能

,

显示计算结果的指令与其后面指令之间的分隔

输入量与输入量之间的分隔

数组元素的分隔

;

不显示计算结果指令的结尾标志

不显示计算结果的指令与其后面指令之间的分隔

数组行间的分隔

:

生成一维数值数组

用作单下标援引时,表示全部元素构成的长列

用作多下标援引时,表示对应维度上的全部元素

%

注释

' '

字符串标记符

( )

数组援引时用

函数指令时表示输入变量

[ ]

输入数组时用

函数指令时表示输出变量

{ }

元胞数组标记符

...

由三个以上连续点构成,可视为以下的物理行是该行的逻辑继续

二、常用操作指令

clc

清除指令窗口中显示的内容

clear

清除matlab工作空间中保存的变量

close all

关闭所有打开的图形窗口

edit

打开m文件编辑器

disp

显示变量的内容

三、指令编辑操作键

↑↓

前寻/后寻调回已输入过的指令行

Tab

补全命令

四、matlab数据类型

matlab中数据绝大多数以数组形式使用。


特征数据类型用途
与常用 编程语 言类似逻辑(logical)---
字符(char)---
数值(numeric)---
结构体(structure)---
matlab 特有元胞(cell)元胞数组的元素,元胞数组视为一种无所不包的通用矩阵(广义矩阵),元胞可以是任何一种数据类型的常数或常量,其尺寸、占用内存空间、内容可完全不同。
表(table)支持类型数据类型方面与元胞类似。优势:相当于一个小型数据库。展示数据上,可像EXCEL那样易于展示数据;数据操作上,见于数据库操作,如插入、查询、修改。



五、开发模式

1、命令行模式

小型科学计算问题,项目的探索阶段

2、脚本模式

重复执行运算

3、面向对象模式

开发维护大型应用与数据结构

总结

针对matlab的学习,根据具体的项目更加高效,善于查找。

matlab代码总结:

  • figure % 创建一个新的图像窗口
  • plot(x,y1,x,y2,'k') %在一个坐标内绘制2个曲线图
  • datetick('x','mm') % 更改日期显示类型
  • xlabel('日期') % x轴说明
  • ylabel('收盘价') % y轴说明
  • title('标题') %输入标题
  • bar(y) % 条形图
  • polyfit(x,y,M) % 多项式拟合
  • polyval(p,x) % 计算多项式 p 在 x 的每个点处的值
  • maxdrawdown(y) % 计算最大回撤

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空