首页 > 编程知识 正文

matlab新手入门教程(matlab教程)

时间:2023-05-06 20:55:27 阅读:83553 作者:2587

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导入数据接口

Step1.3 )查看图4,只需在右上角有“导入所选内容”按钮,即可直接点击。 这些导入的数据将立即显示在MATLAB工作区(当前内存中的变量)中,并显示为列向量。 由于默认数据类型为“列向量”,因此当然也可以选择其他数据类型。 请做几个实验,观察一下选择不同的数据类型后结果会有什么不同。 第一步获取数据的工作就这样完成了。

第2阶段:数据搜索和建模

回到问题上来吧。 对于这个问题,我们的目标是能够评估股票的价值和风险,但是现在还不知道该怎么评价。 MATLAB是工具,不能代替决定用什么样的方法进行评价,但可以帮助得到合适的方法。 这就是数据搜索部分的工作。 让我们来看看如何在MATLAB中搜索和建模数据。

Step2.1 )看数据的统计信息,知道我们的数据。 具体的操作方法是双击工具空间(

双击这三个字),此时会得到所有变量的详细统计信息。通过查看这些基本的统计信息,有助于快速在第一层面认识我们所正在研究的数据。当然,只要大体浏览即可,除非这些统计信息对某个问题都有很重要的意义。数据的统计信息是认识数据的基础,但不够直观,更直观也更容易发现数据规律的方式就是数据可视化,也就是以图的形式呈现数据的信息。下面我们将尝试用 MATLAB 对这些数据进行可视化。

由于变量比较多,所以还有必要对这些变量进行初步的梳理。对于这个问题,我们一般关心收盘价随时间的变化趋势,这样我们就可以初步选定日期(DateNum)和收盘价(Pclose)作为重点研究对象。也就是说下一步,要对这这两个变量进行可视化。

对于一个新手,我们还不知道如何绘图。但不要紧,新版 MATLAB 提供了更强大的绘图功能——“绘图”面板,这里提供了非常丰富的图形原型,如图 5 所示。

图5 MATLAB绘图面板中的图例

要注意,需要在工作区选中变量后绘图面板中的这些图标才会激活。接下来就可以选中一个中意的图标进行绘图,一般都直接先选第一个(plot)看一下效果,然后再浏览整个面板,看看有没有更合适的。下面我们进行绘图操作。

Step2.2:选中变量 DataNum 和 Pclose,在绘图面板中单机 plot 图标,马上可以得到这两个变量的可视化结果,如图 6 所示,同时还可以在命令窗口区显示绘制此图的命令:

>> plot(DateNum,Pclose)

图6 通过 plot 图标绘制的原图

这样我们就知道了,下次再绘制这样的图直接用 plot 命令就可以了。一般情况下,用这种方式绘图的图往往不能满足我们的要求,比如我们希望更改:

(1)曲线的颜色、线宽、形状;

(2)坐标轴的线宽、坐标,增加坐标轴描述;

(3)在同个坐标轴中绘制多条曲线。

此时我们就需要了解更多关于命令 plot 的用法,这时就可以通过 MATLAB 强大的帮助系统来帮助我们实现期望的结果。最直接获取帮助的两个命令是 doc 和 help,对于新手来说,推荐使用 doc,因为 doc 直接打开的是帮助系统中的某个命令的用法说明,不仅全,而且有应用实例,这样就可以“照猫画虎”,直接参考实例,从而将实例快速转化成自己需要的代码。

接下来我们就要考虑如何评估股票的价值和风险呢?

从图 6 可以大致看出,对于一只好的股票,我们希望股票的增幅越大越好,体现在数学上,就是曲线的斜率越大越好。而对于风险,则可用最大回撤来描述更合适。不妨一个一个来,我们先来看如何计算曲线的斜率。对于这个问题,比较简单,由于从数据的可视化结果来看,数据近似成线性,所以不妨用多项式拟合的方法来拟合该改组数据的方程,这样我们就可以得到斜率。

如何拟合呢?对于一个新手来说,我并不清楚用什么命令。此时又可以用帮助系统了。在 MATLAB 主面板(靠近右侧)点击“帮助”,就可以打开帮助系统,在搜索框中搜索多项式拟合的英文单词“polyfit”,马上就可以列出与该关键词相关的帮助信息,同时很快就会发现,正好有个命令就是 polyfit,果断点击该命令,进入该命令的用法页面,了解该命令的用法,就可以直接用了。也可以直接找中意的案例,然后直接将案例中的代码拷贝过去,修改数据和参数就可以了。

Step2.3:通过帮助搜索多项式拟合的命令,并计算股票的价值,具体代码为:

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

Step2.4:用相似的方法,可以很快得到计算最大回撤的代码:

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

到此处,我们已经找到了评估股票价值和风险的方法,并能用 MALTAB 来实现了。但是,我们都是在命令行中实现的,并不能很方便地修改代码。而 MATLAB 最经典的一种用法就是脚本,因为脚本不仅能够完整地呈现整个问题的解决方法,同时更便于维护、完善、执行,优点很多。所以当我们的探索和开发工作比较成熟后,通常都会将这些有用的程序归纳整理起来,形成脚本。现在我们就来看如何快速开发解决该问题的脚本。

Step2.5:像 Step1.1 一样,重新选中数据文件,右键并单击“导入数据”菜单,待启动导入数据引擎后,选择“生成脚本”,然后就会得到导入数据的脚本,并保存该脚本。

Step2.6:从命令历史中选择一些有用的命令,并复制到 Step2.5 得到的脚本中,这样就很容易得到了解决该问题的完整脚本了,如下所示:

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

到此处,第二阶段的数据探索和建模工作就完成了。

第三阶段:发布

当项目的主要工作完成之后,就进入了项目的发布阶段,换句话说,就是将项目的成果展示出去。下面还将继续上面的案例将介绍如何通过 MATLAB 的 publish 功能,来快速发布报告。

Step3.1:在脚本编辑器的“发布”面板,从“发布”按钮(最右侧)的下拉菜单中,选择“编辑发布选项”,这样就打开了发布的配置面板。

Step3.2:根据自己的要求,选择合适的“输出文件格式”,默认为 html,但比较常用的是 Word 格式,因为 Word 格式便于编辑,尤其是对于写报告或论文。然后单击“发布”按钮,就可以运行程序,同时会得到一份详细的运行报告,包括目录、实现过程、主要结果和图,当时也可以配置其他选项来控制是否显示代码等内容。

至此,整个项目就算完成了。我们可以发现,这个过程中,我们并没有需要记住多少个 MATLAB 命令,只用少数几个命令,MATLAB 就帮我们完成了想做的事情。通过这个项目,我们可以有这样的基本认识,一是 MATLAB 的使用真的很简单,就像一般的办公工具那样好用;二是在做项目的过程中,思路是核心,我们只是用 MATLAB 快速实现了我们想做的事情。

3. 入门后的提高

快速入门是为了让我们快速建立对 MATLAB 的使用信心,有了信心后,提高就是自然而然的事情了。为了帮助读者能够更自如的应用 MATLAB,下面将介绍几个入门后提高 MATLAB 使用水平的几个建议:

一是要了解 MATLAB 最常用的操作技巧和最常用的知识点,基本上是每个项目中都会用到的最基本的技巧。入门之后, 再去看 MATLAB 的基础知识(帮助系统里有个 Language Fundamentals ), 视角就完全不一样了, 有种一览众山小的从容。

二是要了解 MATLAB 的开发模式,这样无论项目多复杂,都能灵活面对。关于 MATLAB 开发模式, 可以参考《大数据挖掘:系统方法与实例分析》中的第三章, 或者 MathWorks 官网上的关于 MATLAB 程序开开发技巧的视频,点击阅读原文观看视频。

三是在实践中学习,不断积累经验和知识,拓展 MATLAB 的外延。

根据以上三点,大家就可以逐渐变成 MATLAB 高手了,至少可以很自信地使用 MATLAB 。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。