- MATLAB 是一种应用于科学计算领域的高级语言,它的主要功能包括数值计算功能,符号计算功能,绘图功能,程序设计语言功能以及工具箱的扩展功能。
1. 数值计算功能
- MATLAB 以矩阵作为数据操作的基本形式,这使得矩阵运算变得非常简捷、方便、高效。
- MATLAB 还提供了十分丰富的数值计算函数,而且所采用的数值计算算法都是国际公认的、最先进的、可靠的算法,其程序由世界一流专家编制和高度优化。
2. 符号计算功能
- 在实际应用中,除了数值计算外,往往要得到问题的解析解,这是符号计算的领域。
- MATLAB 先后和著名的符号计算语言 Maple 与 MuPAD(从 MATLAB 2008b 开始使用 MuPAD)相结合,使得 MATLAB 具有很强的符号计算功能。
3. 绘图功能
- 利用 MATLAB 绘图十分方便,它既可以绘制各种图形,又可以对图形进行修饰控制,以增强图形的表现效果。
- MATLAB 提供了两个层次的绘图操作:一种是对图形对象句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。
- 利用 MATLAB 的高层绘图操作,用户不需要过多地考虑绘图细节,只需给出一些基本参数就能绘制所需图形。
- 利用MATLAB图形对象句柄操作,用户可以更灵活地对图形进行各种操作,在图形表现方面拥有了一个没有束缚的广阔空间。
4. 程序设计语言功能
- MATLAB 具有程序流程控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,所以使用 MATLAB 也可以像使用传统程序设计语言一样进行程序设计,而且简单易学,编程,效率高。
- MATLAB 是解释性语言,程序执行速度较慢,而且不能脱离 MATLAB 环境而独立运行。
5. 工具箱的扩展功能
- MATLAB 包含两部分内容:基本部分和各种可选的工具箱。基本部分构成了 MATLAB 的核心内容,也是使用和构造工具箱的基础。
- MATLAB 工具箱分为两大类:功能性工具箱和学科性工具箱。
- 功能性工具箱主要用来扩充其符号计算功能、可视化建模仿真功能以及文字处理与电子表格功能等。
- 学科性工具箱专业性比较强,如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、神经网络工具箱(Neural Network Toolbox)、最优化工具箱(Optimization Toolbox)、金融工具箱(Financial Toolbox)、统计学工具箱(StatisticsToolbox)等。
二、MATLAB 操作界面
- MATLAB 采用流行的图形用户操作界面,集命令的输入、执行、修改和调试于一体,被称为集成开发环境,操作非常直观、方便。
- 从 MATLAB R2012b 开始,MATLAB 采用与 Office 2010 相同风格的操作界面,用功能区界面取代了传统的菜单式界面。功能区由若千个选项卡构成,当单击选项卡时,并不会打开菜单,而是切换到相应的功能区面。
- 在这里,展示一下 MATLAB 的操作界面,我这里使用的是 2022a 版本的 MATLAB,其他版本的大同小异。
1. 主窗口
- 主窗口分为三个部分,分别是功能区,快速访问工具栏和当前文件操作区,都有一些简单方便的操作,具体就不一一举例了。
- 功能区分为三个板块,分别是主页、绘图和应用程序。
2. 命令行窗口
- 命令行窗口用于输入命令并显示命令的执行结果,大部分操作都是在命令行窗口中进行完成的。>> 为命令行的命令提示符,表示 MATLAB 处于准备状态,可以接收并执行 MATLAB 命令。
- 在命令提示符后面输入 MATLAB 命令并按回车键,MATLAB 就会执行命令并将结果显示在后面。这里需要注意分号的使用。
- 如果一行式子太长的话,可以使用续行符,就是英文的三个点:…,需要注意的是,续行符跟式子之间要有一个空格,不然会报错。
3. 当前文件夹窗口
- 为了方便管理文件,可以将文件夹设置为当前文件夹,那么在命令行的操作都在当前文件夹下执行。
- 那么,我们如何设置当前文件夹呢?
- (1) 在当前文件夹区域或者当前文件夹路径【路径可以修改】,自己选择某文件夹为当前文件夹。
- (2) 使用 cd 命令。这个要注意,一定要先建立文件夹,再用 cd 命令设置为当前文件夹。
4. 工作区窗口
- 工作区也称为工作空间,它是 MATLAB 用于存储各种变量和结果的内存空间,工作区窗口可用于变量的显示和操作。
- 例如在命令窗口创建两个变量,同时会在工作区以表格形式显示变量。
5. 搜索路径
- 当用户在命令行窗口输入一条命令后,MATLAB 将按照一定顺序寻找相关的命令对象。基本的搜索过程如下。
- (1) 检查该命令对象是不是一一个变量。
- (2) 检查该命令对象是不是一个内部函数。
- (3) 检查该命令对象是否为当前文件夹下的程序文件(在 MATLAB 中称为 M 文件)。
- (4) 检查该命令对象是否为 MATLAB 搜索路径中其他文件夹下的 M 文件。
- 假设我们建立了一个变量 examp,同时在当前文件夹下建立了一个 M 文件 examp.m,如果在命令行窗口输入 examp,按照上面介绍的搜索过程,应该在屏幕上显示变量 examp 的值。如果没有建立 examp 变量,则执行 examp.m 文件。
- 当 MATLAB 执行 M 文件时,都是在当前文件夹和设定好的搜索路径中搜索,如果 M 文件存放在其他位置,MATLAB 就找不到该文件。
- 一般情况下,MATLAB 系统本身的 M 文件都存放在系统默认的搜索路径中,而用户建立的文件有可能没有保存在搜索路径中,而保存在自己的工作文件夹中,这时需要将用户的工作文件夹加入到 MATLAB 搜索路径,从而将用户文件夹纳入 MATLAB 系统统一管理。
- 对于搜索路径的设置,我们有如下两种常用的方式。
- (1)用 path 命令设置搜索路径。
- 使用 path 命令可以把用户文件夹临时纳入搜索路径。例如,将用户文件夹 e:\matlab_2022a\work 加到搜索路径下,可在命令行窗口输入如下命令。
path(path,e:\matlab_2022a\work')
- 需要注意的是,一定要使用存在的文件夹路径。
- (2) 用对话框设置搜索路径。
- 在 MATLAB 主页选项卡的环境命令组中单击设置路径命令按钮,或在命令行窗口执行 pathtool 命令,将出现设置路径对话框。
- 通过添加文件夹或添加并包含子文件夹按钮将指定路径添加到搜索路径列表中。
- 对于已经添加到搜索路径列表中的路径可以通过上移、下移等按钮修改该路径在搜索路径中的顺序。对于那些不需要出现在搜索路径中的路径,可以通过删除按钮将其从搜索路径列表中删除。
- 在修改完搜索路径后,单击保存按钮,系统将所有搜索路径的信息保存在 MATLAB 安装文件夹下的 toolbox\local 文件夹下的文件 pathdef.m 中,通过修改该文件也可以修改搜索路径。
三、MATLAB 基本操作
1. 交互式命令操作
- 交互式命令操作就是在 MATLAB 命令行窗口中输入并执行命令,这是最基本的操作。命令操作首先需要了解命令的输入规则。
1.1 命令行
- 一般来说,一个命令行输入一条命令, 命令行以 Enter 键结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。
>> p=15,m=35
p =
15
m =
35
>> p=15;m=35
m =
35
- 以上两个命令行都是合法的,第一个命令行执行后显示 p 和 m 的值,第二个命令行因命令 p=15 后面带有分号,p 的值不显示,而只显示 m 的值。
1.2 续行符
- 有关于续行符的相关内容在上文已经叙述过了,这里详细介绍一下,主要还是需要注意续行符与前文中间需要一个空格。
- 如果一个命令行很长,需要分成两行或多行来输入,则可以在第一个物理行之后加上三个小黑点并按 Enter 键,然后接着在下一个物理行继续输入命令的其他部分。三个小黑点称为续行符,即把下面的物理行看做该行的逻辑继续。例如:
>> s=1-1/2+1/3-1/4+1/5-1/6+1/7- ...
1/8+1/9-1/10+1/11-1/12;
- 这是一个命令行,它占用两个物理行,第一个物理行以续行符结束,第二个物理行是上一行的继续。
1.3 命令行的编辑
- 在 MATLAB 中,有很多的控制键和方向键可用于命令行的编辑。如果能熟练使用这些键将大大提高操作效率。例如,当将命令 x1=(log(3)+sqrt(5))/2 中的函数名 sqrt 输入成 srt 时,由于 MATLAB 中不存在 srt 函数,MATLAB 将会给出如下错误信息。
>> x1=(log(3)+srt(5))/2
函数或变量 'srt' 无法识别
- 重新输入命令时,我们不用输入整行命令,而只需按上移光标键(↑)调出刚才输入的命令行,再在相应的位置输入 q 字母并按 Enter 键即可。在按 Enter 键时,光标可以在该命令行的任何位置,没有必要将光标移到该命令行的末尾。
- 反复使用上移光标键,可以回调以前输入的所有命令行。还可以只输入少量的几个字母,再按上移光标键就可以调出最后一条以这些字母开头的命令。
- 例如,输入 plo 后再按上移光标键,则会调出最后一次使用的以 plo 开头的命令行。
键名 | 功能 | 键名 | 功能 |
---|
↑ | 前寻式调回已输入过的命令 | Home | 将光标移到当前行首端 |
↓ | 后寻式调回已输入过的命令 | End | 将光标移到当前行末尾 |
← | 在当前行中左移光标 | Del | 删除光标右边的字符 |
→ | 在当前行中右移光标 | Backspace | 删除光标左边的字符 |
PgUp | 前寻式翻滚一页 | Esc | 删除当前行的全部内容 |
PgDn | 后寻式翻滚一页 | Ctrl+C | 中断一个 MATLAB 任务 |
1.4 注释
- 在 MATLAB 命令后面可以加上注释,用于解释或说明命令的含义,对命令执行结果不产生任何影响。
- 注释以 % 开头,后面是注释的内容。
2. 功能演示
- 本块内容通过几个具有代表性的例子对 MATLAB 的功能进行演示。
- (1) 分别绘制 y = 2 − ∣ x ∣ y=2^{-\left | x \right | } y=2−∣x∣ 和 y = sin x y=\sin x y=sinx 的曲线。
- 在 MATLAB 命令行窗口输入如下命令:
>> x=-2*pi:pi/180:pi;
>> plot(x,2.^(-abs(x)),':',x,sin(x));
- 其中,第一条命令建立 x 向量,x 从 -2π 变化到 2π(π 代表圆周率),第二条命令绘制曲线,
':'
表示 y = 2 − ∣ x ∣ y=2^{-\left | x \right | } y=2−∣x∣ 用虚线绘制。 - 命令中 abs、sin 分别是 MATLAB 提供的求绝对值函数和正弦函数。执行命令后,将打开一个图形窗口,并在其中显示两个函数的曲线,虚线为 y = 2 − ∣ x ∣ y=2^{-\left | x \right | } y=2−∣x∣,实线为 y = sin x y=\sin x y=sinx。
- (2) 求方程 2 x 5 − 3 x 3 + 71 x 2 − 9 x + 13 = 0 2x^{5}-3x^{3}+71x^{2}-9x+13=0 2x5−3x3+71x2−9x+13=0 的全部根。
- 在 MATLAB 命令行窗口输入如下命令:
>> p=[2,0,-3,71,-9,13];
>> x=roots(p)
x =
-3.4914 + 0.0000i
1.6863 + 2.6947i
1.6863 - 2.6947i
0.0594 + 0.4251i
0.0594 - 0.4251i
- 其中,第一条命令建立多项式系数向量,第二条命令调用 roots 函数求方程的全部根。
- (3) 求解线性方程组。 { 2 x + 3 y − z = 2 8 x + 2 y + 3 z = 4 45 x + 3 y + 9 z = 23 \left\{ 2x+3y−z=28x+2y+3z=445x+3y+9z=23 2 x + 3 y − z = 2 8 x + 2 y + 3 z = 4 45 x + 3 y + 9 z = 23 \begin{matrix}2x+3y-z=2 \\8x+2y+3z=4 \\45x+3y+9z=23 \end{matrix}\right. ⎩ ⎨ ⎧2x+3y−z=28x+2y+3z=445x+3y+9z=23
- 在 MATLAB 命令行窗口输入如下命令:
>> a=[2,3,-1;8,2,3;45,3,9];
>> b=[2;4;23];
>> x=inv(a)*b
x =
0.5531
0.2051
-0.2784
- 其中,前两条命令建立系数矩阵 a 和列向量 b,第三条命令求线性方程组的解,inv(a) 用于求 a 的逆矩阵。第三条命令也可用命令 x=a\b 等价表示。
- 此外,也可以通过符号计算来解此方程。在 MATLAB 命令行窗口输入如下命令:
>> syms x y z
[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)
x =
151/273
y =
8/39
z =
-76/273
>> eval([x,y,z])
ans =
0.5531 0.2051 -0.2784
- 先用 solve 函数求符号解,再用 eval 函数转换为数值解。其中,ans 为 MATLAB 系统本身定义的变量,是默认的赋值变量。
- (4) 求定积分 ∫ 0 1 x ln ( 1 + x ) d x \int_{0}^{1} x\ln_{}{(1+x)}\mathrm{d}x ∫01xln(1+x)dx。
- 在 MATLAB 命令行窗口输入如下命令:
>> f=@(x) x.*log(1+x);
>> integral(f,0,1)
ans =
0.2500
- 其中,第一条命令是定义被积函数,log 为 MATLAB 提供的对数函数,第二条命令是求定积分。
- 此外,也可以通过符号计算来解此方程。在 MATLAB 命令行窗口输入如下命令:
>> syms x
>> int(x*log(1+x),0,1)
ans =
1/4
3. 帮助系统
- MATLAB 提供了数目繁多的函数和命令,要把它们全部记下来是不现实的。可行的办法是先掌握一些基本内容,然后在实践中不断总结和积累,逐步掌握其他内容。
- MATLAB 提供了丰富的帮助功能,通过这种功能可以很方便地获得有关函数和命令的使用方法。在 MATLAB 中,通过帮助窗口或帮助命令可获得帮助。
3.1 帮助窗口
- MATLAB 帮助窗口相当于一个帮助信息浏览器。使用帮助窗口可以搜索和查看所有 MATLAB 的帮助文档,还能运行有关演示程序。进入 MATLAB 帮助窗口的方法有以下三种。
- (1) 单击 MATLAB 主窗口主页选项卡资源命令组中的问号按钮,或单击帮助下拉按钮并选择文档命令。
- (2) 单击 MATLAB 主窗口快速访问工具栏中的按钮,或按 F1 键,再单击打开帮助浏览器超链接。
- (3) 在 MATLAB 命令行窗口中输入 doc 命令。
- 在 MATLAB 帮助信息起始窗口中,可以选择 MATLAB 主程序、Simulink 或各种工具箱,然后进入相应的帮助信息浏览窗口。例如,在 MATLAB 帮助信息起始窗口中选择 MATLAB 选项,即进入 MATLAB 主程序帮助信息浏览窗口。
- MATLAB 主程序帮助信息浏览窗口包括左边的帮助向导页面和右边的帮助信息显示页面两部分。在左边的帮助向导页面选择帮助项目名称,将在右边的帮助显示页面中显示对应的帮助信息。
3.2 帮助命令
- 要了解 MATLAB,简洁、快速的方式是在命令行窗口中通过帮助命令对特定的内容进行快速查询。
- MATLAB 帮助命令包括 help、lookfor 以及模糊查询。
- (1) help 命令。help 命令是查询函数语法的最基本方法,查询信息直接显示在命令行窗口。在命令行窗口中直接输入 help 命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的文件夹名称。
- 同样,可以通过 help 加函数名来显示该函数的帮助说明。例如,为了显示 magic 函数的使用方法与功能,可使用如下命令:
>> help magic
magic - 幻方矩阵
此 MATLAB 函数 返回由 1 到 n2 的整数构成并且总行数和总列数相等的 n×n 矩阵。n 的阶数
必须是大于或等于 3 的标量才能创建有效的幻方矩阵。
- MATLAB 按照函数的不同用途将函数分别存放在不同的子文件夹下,用相应的帮助命令可显示某一类函数。例如,所有的线性代数函数均放在 matfun 子文件夹下,使用如下命令可显示所有线性代数函数。
>> help matfun
- (2) lookfor 命令。help 命令只搜索出那些关键字完全匹配的结果,lookfor 命令对搜索范围内的 M 文件进行关键字搜索,条件比较宽松。例如,因为不存在 inverse 函数,help 命令的搜索结果如下。
>> help inverse
未找到inverse.
- 而 lookfor 命令的搜索将得到 M 文件中包含 inverse 的全部函数。
> lookfor inverse
- lookfor 命令只对 M 文件的第一行进行关键字搜索, 若在 lookfor 命令加上 -all 选项,则可对 M 文件进行全文搜索。例如:
>> lookfor -all inverse
- (3) 模糊查询。MATLAB 提供了一种类似模糊查询的命令查询方法,我们只需要输入命令的前几个字母,然后按 Tab 键,系统就会列出所有以这几个字母开头的命令。知道了命令或函数名之后,可以进一步用 help命令查询其详细用法说明。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删