MATLAB虽然强大,但是很好用,尤其是R2013a之后,更容易上手。现在,使用MATLAB的一个想法是像使用Word一样使用MATLAB。对于没用过MATLAB的模具朋友来说,也很容易上手。
1.MATLAB的功能
想要使用MATLAB,首先要知道MATLAB有哪些功能。图1显示了MATLAB家族产品的结构,其中包含了很多工具箱,因此其应用领域非常广泛。在各个行业和学术机构中,工程师和科学家使用MATLAB大大提高了工作效率。知道了MATLAB有哪些功能,你就知道在什么情况下可以使用MATLAB。看这张图就知道了,不管你从事什么行业,只要涉及科学计算或者工程设计,都可以用MATLAB。
图1 MATLAB系列产品结构图
2.快速启动案例
MATLAB虽然是一个程序开发工具,但它仍然是一个工具,所以它可以像其他工具(如Word)一样简单易用。传统的学习MATLAB的方式一般是从学习MATLAB的基础知识开始,比如MATLAB矩阵运算、绘图、数据类型、程序结构、数值计算等等。学习这些知识的目的是为了能够使用MATLAB,但是即使学了之后,很多人仍然没有信心能够独立自如地使用MATLAB。这是因为当我们学习这些知识的时候,目标是虚无的,不是一个具体的目标。具体目标应该是解决某个问题。
虽然我用MATLAB很多年了,但是我记得的MATLAB命令不超过20个。每次都是靠几个常用的命令一步步实现各种项目。所以用MATLAB不用积累那么多知识,掌握几个MATLAB的技巧就可以了。下面将带你通过一个小项目,一步步用MATLAB解决一个实际问题,假设我们都是MATLAB的业余爱好者(还没到菜鸟水平)。
我们要解决的问题是:知道股票的交易数据:日期、开盘价、最高价、最低价、收盘价、成交量和换手率,尝试某种方法来评估这只股票的价值和风险。
这是一个开放性的问题,但更好的方式是用量化的方式来评估股票的价值和风险,所以是典型的科学计算问题。通过对MATLAB函数的介绍,我们可以肯定MATLAB可以帮助我们(选择合适的工具)。
现在先抛开MATLAB,我们来看一个科学计算问题的典型处理流程。一个典型科学计算的流程如图2所示,即数据采集、数据探索和建模,最后是结果共享。
图2 MATLAB典型科学计算流程
现在按照这个流程,看看如何用MALTAB实现这个项目。
第一阶段:从外部读取数据
对于一个门外汉来说,不知道怎么用命令来操作,但是电脑操作的经验告诉我们,当我们不知道怎么操作的时候,不妨试试正确的按钮,所以:
第1.1步:选中数据文件,右键单击,弹出右键列表。您将很快发现一个“导入数据”菜单,如图3所示。
图3启动导入数据引擎示意图
步骤1.2:点击“导入数据”按钮,你很快就会发现它充当了一个导入数据引擎,如图4所示。
图2-4导入数据界面
图4导入数据界面
步骤1.3:请看图4。右上角只有一个“导入选中内容”按钮,可以直接点击。我们很快就会发现,导入的数据会显示在MATLAB的工作区中(当前内存中的变量),并表示为列向量,因为默认的数据类型是“列向量”。当然,也可以选择其他数据类型。你不妨做一些实验,观察选择不同数据类型后结果的差异。至此,第一步数据采集完成。
第二阶段:数据探索和建模
现在,让我们回到问题上来。对于这个问题,我们的目标是评估股票的价值和风险,但是现在不知道怎么评估。MATLAB是一个工具,它不能代替我们对哪种方法进行评估的决策,但是它可以帮助我们得到合适的方法。这是数据探索的工作。让我们试试如何在MATLAB中探索和建模数据。
第2.1步:查看数据的统计信息,了解我们的数据。具体操作方法是双击工具区(直接双击这三个字),然后你会得到所有变量的详细统计。通过查看这些基本的统计信息,我们可以快速了解我们正在研究的第一层次的数据。当然只是粗略浏览,除非这些统计数据对某个问题有重大意义。数据的统计信息是理解数据的基础,但不够直观。更直观、更容易发现数据规律的方法是数据可视化,即以图形的形式呈现数据信息。我们将尝试用MATLAB可视化这些数据。
因为变量很多,所以有必要对这些变量进行初步的梳理。对于这个问题,我们一般关心收盘价随时间的变化趋势,这样可以初步选取日期(DateNum)和收盘价(Pclose)作为重点研究对象。也就是说,下一步就是把这两个变量可视化。
对于一个新手来说,我们还不知道怎么画。不过没关系,新版MATLAB提供了更强大的绘图功能3354“绘图”面板,这里提供了非常丰富的图形原型,如图5所示。
图5 MATLAB绘图面板中的图例
请注意,在工作区中选择变量之前,绘图面板中的这些图标不会被激活。接下来,您可以选择一个喜欢的图标进行绘制。一般可以直接选择第一个(剧情)看效果,然后浏览整个面板看有没有更合适的。我们来做画图操作。
步骤2.2:选择变量DataNum和Pclose,并在绘图面板中的单台机器上绘制图标。您可以立即获得这两个变量的可视化结果,如图6所示。同时,你也可以在命令窗口区域显示绘制此图的命令:
plot(DateNum,Pclose)
图6由绘图图标绘制的原图
所以我们知道,下次画这样的图,直接用plot命令就行了。一般这样画出来的图纸往往达不到我们的要求,比如我们想改:
(1)曲线的颜色、线宽和形状;
(2)坐标轴的线宽和坐标,增加坐标轴的描述;
(3)在同一坐标轴上画多条曲线。
此时,我们需要更多地了解命令图的使用方法,然后通过MATLAB强大的帮助系统来帮助我们达到预期的效果。可以直接获得帮助的两个命令是doc和help。对于新手来说,建议使用doc,因为doc直接在帮助系统中打开一个命令的指令,不仅完整,而且有应用实例,这样你就可以“画虎为猫”,直接引用实例,从而快速将实例转化为你需要的代码。
接下来要考虑如何评估股票的价值和风险。
从图6可以看出,对于一只好的股票,我们希望股票的涨幅越大越好。在数学中,曲线的斜率越大越好。对于风险来说,最大回撤比较合适。我们一个一个来。我们先来看看如何计算曲线的斜率。对于这个问题,比较简单。由于数据的可视化结果显示数据近似线性,我们不妨用多项式拟合来拟合重组数据的方程,这样就可以得到斜率。
怎么贴合?对于新手来说,不知道用什么命令。现在,您可以再次使用帮助系统。点击MATLAB主面板上的“Help ”(靠近右侧)打开帮助系统。在搜索框中搜索多项式拟合的英文单词“polyfit”,可以立即列出与该关键词相关的帮助信息。同时,你很快会发现,正好有一个叫polyfit的命令。果断点击这个命令,进入这个命令的使用页面,知道这个命令的用法,就可以直接使用了。也可以直接找到喜欢的案例,然后直接复制案例中的代码,修改数据和参数。
Step2.3:通过命令帮助搜索多项式拟合,并计算股票的价值,具体代码是:
p=polyfit(DateNum,Pclose,1);%多项式拟合 value=p(1)%将斜率赋值为股票的值\ nvalue=\ n 0.1212 \步骤2.4:使用类似的方法,可以快速得到计算最大回撤的代码:
MaxDD=最大下降(Pclose);%计算最大回撤 risk=MaxDD%将最大回撤赋值给risk作为股票的风险risk= 0.1155这里我们找到了一种评估股票价值和风险的方法,可以用MALTAB实现。但是我们都是在命令行实现的,不能轻易修改代码。MATLAB最经典的用法就是脚本,因为脚本不仅可以完整的呈现整个问题的解,而且便于维护、改进和执行,有很多优点。所以当我们的探索开发工作比较成熟的时候,通常会把这些有用的程序进行总结整理,形成脚本。现在我们来看看如何快速开发一个脚本来解决这个问题。
第2.5步:和第1.1步一样,重新选择数据文件,右键点击“导入数据”菜单。启动导入数据引擎后,选择“生成脚本”,将得到导入数据的脚本并保存。
步骤2.6:从命令历史中选取一些有用的命令,复制到步骤2.5中得到的脚本中,这样就可以很容易地得到一个解决这个问题的完整脚本,如下图:
%% MATLAB入门案例%%导入数据clc,clear,close all %导入数据\ n [~,~,raw]=xlsread ('sz00004.xls '' sheet1 '' a2:H99 '); %创建输出变量\ n data=shape([raw {:}],size (raw))。%将导入的数组赋给列变量名Date=data(:1)。DateNum=data(:2);\ nPopen=data(:3);Phigh=data(:4);\ nPlow=data(:5);Pclose=data(:6);\ nVolum=data(:7)。Turn=data(:8);%清除临时变量清除原始数据; %% Data Exploration figure%创建新的图像窗口plot(DateNum,Pclose,' k')%更改图形的黑色(打印后不失真)\ ndatetick ('x '' mm ');%白化日期显示类型\ NX label(' date ');% x轴说明\ n标签('收盘价');% y轴描述figure bar(Pclose)%作为比较图%%股票价值评估p=polyfit(DateNum,Pclose,1);%多项式拟合,%分号用于不在命令窗口显示执行结果P1=polyval(p,DateNum);%获取多项式模型的结果\ nfigure \ nplot (datenum,P1,datenum,pclose,' * g ');%模型和原始数据之间的比较value=p(1)%将斜率赋值为股票的价值。%%股票风险评估\ nmax DD=max draw down(Pclose);%计算最大回撤risk=MaxDD%将最大回撤赋值给risk作为股票的风险至此,数据探索和建模的第二阶段完成。
第三阶段:释放
当项目的主体工作完成后,就会进入项目的发布阶段,换句话说,就是展示项目的成果。下面将延续上面的案例,介绍如何通过MATLAB的publish函数快速发布报表。
步骤3.1:在脚本编辑器的发布面板中,从发布按钮(最右侧)的下拉菜单中,选择编辑发布选项,这将打开发布的配置面板。
第3.2步:根据自己的要求选择合适的“输出文件格式”。默认是html,但是常用的是Word格式,因为Word格式编辑起来比较方便,特别适合写报告或者论文。然后点击“发布”按钮,就可以运行程序,得到详细的运行报告,包括内容、实施过程、主要结果和图表。此时,您还可以配置其他选项来控制是否显示代码。
至此,整个工程完成。我们可以发现,在这个过程中,我们不需要记住很多MATLAB命令。只需几个命令,MATLAB就能帮助我们完成我们想要做的事情。通过这个项目,我们可以有这样的基础知识。第一,MATLAB的使用真的很简单,就像一般的办公工具一样好用;第二,在做项目的过程中,思路是核心,我们只是用MATLAB快速实现我们想做的事情。
3.引进后的改进
快速入门是为了我们快速建立对MATLAB使用的信心。有了自信,提高是自然而然的事情。为了帮助读者更自如地应用MATLAB,下面给出一些入门后提高MATLAB使用水平的建议:
首先要知道MATLAB最常用的操作技巧和知识点,基本上是每个项目都会用到的最基本的技能。入门之后再看看MATLAB的基础知识(帮助系统里有语言基础),视角就完全不一样了,就是那种其他的山都显得天底下的矮子。it’很平静。
二是了解MATLAB的开发模式,这样无论多复杂的项目都能灵活面对。MATLAB的开发方式请参考《大数据挖掘:系统方法与实例分析》第三章,或者MathWorks官网关于MATLAB程序开发技巧的视频。点击阅读原文观看视频。
第三,在实践中学习,积累经验和知识,拓展MATLAB的外延。
根据以上三点,你可以逐渐成为MATLAB高手,至少你可以自信地使用MATLAB。
数学建模入门
中国教育新闻网讯(记者焦)由高等教育出版社和全国大学生数学建模竞赛组委会联合举办的“数学建模大讲堂”公益直播将于4月7日启动。
为迎接2022年“高教社杯”全国大学生数学建模竞赛,推进数学建模课程建设,让广大大学生更好地了解数学建模竞赛,在竞赛中取得好成绩,高等教育出版社、全国大学生数学建模竞赛组委会特开设本报告厅。
“数学建模大讲堂”共八期,时间为2022年4-6月。浙江大学陈叔平教授、清华大学蒋启元教授,全国大学生数学建模竞赛组委会顾问(《数学模型(第五版)》,主编,国内影响最大、应用最广的数学建模教材),以及全国著名教学名师、国防科技大学吴孟达教授、全国大学生数学建模竞赛组委会委员、复旦大学蔡志杰教授等七位数学建模领域的权威专家将依次授课。高等教育出版社官方微博、数字高等教育视频号、高等教育自习室视频号全网直播,高等教育电子音像出版社官方微信官方账号每期预告、精彩回放。
“数学建模大讲堂”的内容和时间安排
“高教社杯”全国大学生数学建模竞赛是我国规模最大的基础学科竞赛之一。以“创新意识、团队精神、重在参与、公平竞争”为宗旨,在发掘学生兴趣和潜能的基础上,培养学生的创造性思维,引导学生全面发展,具有重要意义。