直接在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中数据绝大多数以数组形式使用。
特征 | 数据类型 | 用途 |
与常用 编程语 言类似 | 逻辑(logical) | --- |
字符(char) | --- | |
数值(numeric) | --- | |
结构体(structure) | --- | |
matlab 特有 | 元胞(cell) | 元胞数组的元素,元胞数组视为一种无所不包的通用矩阵(广义矩阵),元胞可以是任何一种数据类型的常数或常量,其尺寸、占用内存空间、内容可完全不同。 |
表(table) | 支持类型数据类型方面与元胞类似。优势:相当于一个小型数据库。展示数据上,可像EXCEL那样易于展示数据;数据操作上,见于数据库操作,如插入、查询、修改。 |
1、命令行模式
小型科学计算问题,项目的探索阶段
2、脚本模式
重复执行运算
3、面向对象模式
开发维护大型应用与数据结构
针对matlab的学习,根据具体的项目更加高效,善于查找。
matlab代码总结:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删