2.1 MATLAB 的界面介绍2.2 创建 MATLAB 的脚本2.3 强大的实时脚本2.4 MATLAB 文件管理2.5 MATLAB 的帮助系统(1)在 MATLAB 官网搜索(2)使用 doc 命令(3)使用 help 命令(4)使用 edit 命令2.6 MATLAB 的变量变量的命名等号“=”给变量赋值更改 MATLAB 的数值的显示格式2.7 常见的数学运算函数2.8 本章小节2.9 课后习题
2.1 MATLAB 的界面介绍
首次启动 MATLAB 时,桌面会以默认的布局显示。下图是我打开 MATLAB2017 版本的 界面:
从图中可以看出, MATLAB 的界面默认分成了四个大的区域:
最上方的菜单栏:包含主页、绘图和 APP(应用程序或工具箱);
左侧的当前文件夹:用来快速查看并访问文件夹中的文件;
中间的命令行窗口:可以在命令行中输入命令(由提示符 (>>) 开始);
右侧的工作区:可以用来查看目前 MATLAB 内存中保存的所有变量或者对象。
有些同学打开 MATLAB 后默认还有一个命令历史记录的区域, 该区域用来记录你之前运 行过的命令。没有的同学可以打开菜单栏——主页——布局,将其设置为停靠。
上面介绍的这些区域的位置我们可以进行调整, 你可以更改区域的大小和展示形式,如果不小心关掉了这些窗口,可以在布局中恢复成默认设置。
下面,大家在命令行窗口分别输入下面的三行语句,查看效果:
我们首先定义了两个变量, x 和 y,其中 x 的值等于 10,y 的值等于 3,然后, 我们计算 x 的 y 次方,即 10 的 3 次方,得到的结果等于 1000。
大家可以在工作区查看这些变量的值。注意到,在工作区中出现了一个名为“ans ”的变 量,这个变量我们并没有定义,这是我们计算 x^y 得到的结果。事实上,在 MATLAB 中,如 果不将计算结果赋值给变量, MATLAB 就会将该结果默认赋值给 ans ,以后我们会再讲到这一 点。
请大家现在关闭 MATLAB,然后再重新打开,你会发现:之前命令行窗口的代码和计算 结果都消失了,工作区也被清空了。
有同学会想: 能不能把我们写的代码保存到一个文件中, 以后想重新调用这个代码就直接 打开这个文件运行呢?
当然可以, MATLAB 中就提供了这个功能:创建一个后缀为.m 的脚本文件。
2.2 创建 MATLAB 的脚本
在实际应用中,直接在命令行窗口中输入简单的命令无法满足用户的所有需求, 因此 MATLAB 提供了另一种工作方式, 即利用.m 后缀的脚本文件(又称为 m 文件) 编程。 如果要 输入较多的命令,且需要经常重复输入或者运行时,就可以利用 m 文件来实现。
点击 MATLAB 菜单栏: 主页——新建——脚本,或者使用快捷键 Ctrl+N,就会弹出下图 所示的编辑器界面,大家将上一节的三行代码输入到编辑器中,如下图所示:
然后点击 MATLAB 菜单栏: 编辑器——保存,或者使用快捷键 Ctrl+S,将这个文件保存 在你的桌面(建议提前新建一个文件夹,专门用来保存你的代码)。
保存时可以设置文件名,如下图所示:
如果你将这个文件名设置为中文,那么将会弹出下面的对话框:
对话框提示我们: MATLAB 名称必须以字母开头, 并且仅包含字母、数字或下划线。
因此我们需要将这个文件的名称设置为规定的格式, 例如 code1。这个规定的命名格式也 适用于我们后面要讲的变量命名,这也和其他大多数编程语言的命名习惯相同。
大家注意,保存的文件的后缀为.m ,这也是 m 文件的由来。 m 文件是一种标准的文本文 件,我们可以在任何文本编辑器中进行编辑、存储、修改和读取。我个人习惯将 m 文件的打 开方式设置为使用“记事本”打开,这样能够很方便快速的查看 m 文件的内容。
将文件保存好后, 我们点击 MATLAB 菜单栏: 编辑器——运行,这时候可能会弹出下面 的对话框, 提示我们在当前文件夹和 MATLAB 路径中没有找到我们保存的代码, 这里就涉及 到了 MATLAB 的文件搜索的知识,我们在后面会专门介绍这个知识点。
大家可以点击“更改文件夹”的选项,然后再点击运行, 在命令行窗口就会出现计算结果。
另外, 你也可以在编辑器中更改你的代码, 例如我们把 x^y 的结果赋值给变量 z 保存, 即 将第三行代码改成“z=x^y”,然后再来运行你的代码。
除了点击“运行”按钮执行我们写好的脚本外, 还有另外两种方法可以执行:(1)大家可 以在命令行窗口输入我们的脚本名称, 例如上面创建的 code1,然后点击回车, MATLAB 就会 运行 code1 中的代码;(2)大家在编辑器中,按下 Ctrl+A 的快捷键,就可以选中所有的代码 行, 然后点击鼠标右键, 选择“执行所选内容”,快捷键是 F9(笔记本电脑可能要同时按 Fn 和 F9),就会运行代码,代码运行的结果会出现在命令行窗口。
上面这两种方法, 我个人使用第二种比较多。因为有时候我们不需要一次执行完所有的代 码, 在第二种方法中, 我们可以只选择想要运行的代码行, 然后右键执行。另外, 有同学在使 用第一种方法运行 code1.m代码时,可能会遇到下面的错误提示:“未定义函数或变量'code1'。” 这是初学者常犯的一个错误,我们在后面小节介绍出错的原因和解决方法。
小技巧: 建立或者打开 m 文件后, MATLAB 最上方的菜单栏会出现三个新的选项。大家 可以点击视图,勾选上高亮显示当前行、行号和数据提示, 这个对大家的学习很有帮助。
2.3 强大的实时脚本
前面小节我们介绍过普通的脚本, 普通的脚本的文件后缀是.m,在普通脚本中我们可以写 上需要的代码,然后保存到本地,未来需要调用时可以打开执行,其计算的结果会显示在 MATLAB 的命令行窗口中。
MATLAB 从 2016 的版本开始, 引入了实时脚本的功能, 实时脚本的文件后缀是.mlx。你 可以把实时脚本理解成一个非常好用的交互式文档,在这个文档中也可以写上代码, 还可以加 上说明性的文本, 甚至可以插入图片和公式。在执行代码时, 返回的结果可以和代码一起显示 和保存。(熟悉 Python 的同学应该知道,这个功能类似于 Jupyter Notebook)
在实时脚本中编写程序时, MATLAB 的代码提示功能也更加强大,也能够对绘制出来的 图形进行方便的修改。我们后面的学习将主要借助实时脚本的功能。另外, MATLAB 的版本 越新, 实时脚本支持的功能也越强大, 在上一章介绍 MATLAB 的安装时, 我提到过: 至少安 装 2017a 以上的版本,在电脑配置允许的前提下,版本越新越好。
下图是MATLAB 自带的实时脚本的示例文件,文件名为:LiveEditorInteractiveNarrative.mlx, 大家可以在 MATLAB 的安装路径中找到。可以看到, 实时脚本就像一个“笔记本”,利用实时 脚本可以让我们的学习更加轻松,课后的复习也更加方便。
补充2.4 MATLAB 文件管理
上一章我们说过, MATLAB 是一款非常强大的用于科学计算的商业软件。MATLAB 中实 现了非常多的功能, 这些功能以文件的形式保存在我们电脑的本地。 当执行 MATLAB 某个文 件的命令时, MATLAB 首先会在当前文件夹中寻找该命令对应的文件,如果找到的话就会执 行这个文件; 如果没有找到的话, 会在搜索路径中继续寻找,如果都没找到的话则会报错。
初学者常犯的一个错误就是: “未定义函数或者变量”,这正是没有找到对应的文件时 MATLAB 提示的错误。(注意:这里所说的函数也是一种 m 文件,函数以关键字 function 开 头,通常用来实现某一特定的功能,后面的章节会详细介绍。 MATLAB 中有非常多的内置函 数,例如“sum ”函数可以用来求和,“sort”函数可以用来排序, 在后面我们会专门讲到大量 的内置函数的用法,也会告诉大家如何自己编写函数。)
在本章第一节介绍 MATLAB 的界面时, 我们讲过当前文件夹, MATLAB 会优先在该文件 夹中寻找你调用的命令。例如, 我们上一小节自己定义的 code1.m 的脚本, 如果你的当前文件 夹下面没有这个文件,然后你在命令行执行了 code1 的命令,那么 MATLAB 可能会报错提示 “未定义函数或变量'code1'。”简单提一下, 这里的报错提示可以改成“未定义脚本、函数或变 量'code1' ”,这样会更完整一点, 因为 MATLAB 的 m 文件分为两种: 一种为脚本文件, 另一种 为函数文件。
那么, 怎么利用当前文件夹解决这个报错呢?我们只需要修改当前文件夹为 code1.m文件 所在的文件夹即可。
有多种方式可以修改当前文件夹:
(1)点击浏览文件夹,然后选择需要修改到的文件夹即可
(2)直接复制要修改到的文件夹的地址到下图所示的位置
(3)右键单击编辑器打开的 m 文件名称,选择第一个选项
(4)在命令行窗口执行命令, cd 命令后面接上要修改的文件夹地址
除了使用当前文件夹解决这个问题外, 我们还可以利用 MATLAB 的搜索路径功能。 大家 可以点击 MATLAB 菜单栏: 主页——设置路径,就能够看到 MATLAB 默认的搜索路径。
如下图所示, MATLAB 的搜索路径中包含了非常多的文件夹。前面我们说过,在运行某 一个命令时, MATLAB 会先在当前文件夹中寻找,找不到的话才会在搜索路径中寻找。在搜 索路径中也存在搜索的先后顺序, MATLAB 会先从最上面的文件夹中搜索, 直到找到为止, 如果都没有找到则会报错。
因此, 我们可以将 code1.m 文件所在的文件夹添加到搜索路径即可, 在上面图片的左侧有 对应的选项,大家可以尝试。
注意: 我个人不太推荐大家将自己的文件夹添加到 MATLAB 的搜索路径。如果我们写的 m 文件的名称和 MATLAB 自带的命令相同, 且我们的文件夹在搜索路径的最上方, 那么以后 MATLAB 调用这个命令时, 就会执行我们写的代码,这会导致我们遇到一些意想不到的问题。 当然, 如果你非常注意命名规范, 写的 m 文件名称不和 MATLAB 自带的文件名冲突的话, 使 用搜索路径会比更改工作路径更加方便。
2.5 MATLAB 的帮助系统
作为一款商业软件, MATLAB 的帮助系统非常完善,这与其他科学计算软件相比是一个 突出的特点。要熟练掌握 MATLAB,就必须熟练掌握 MATLAB 帮助系统的应用。因为 MATLAB 内置功能非常的多, 要记住所有的功能的用法是不现实的, 所以大家在未来的学习过程中要经 常查阅 MATLAB 的帮助文档。
那么,应该如何使用MATLAB 的帮助系统呢? 下面我们以查找MATLAB 求和函数“sum ” 的帮助信息为例,告诉大家几种常见的做法。
(1)在 MATLAB 官网搜索
大家可以打开 MATLAB 的帮助中心: https://ww2.mathworks.cn/help/index.html
在页面的右上方输入 sum 进行搜索, 就能找到 sum 函数的帮助界面。在该界面提供了 sum 函数的用法和示例代码,对用户自学非常友好。
(2)使用 doc 命令
doc 是 document(文档) 的缩写, 在 MATLAB 的命令行窗口输入 doc 即可调出 MATLAB 的帮助中心。doc 后面可以跟上你要查询的命令名称, 例如我们输入: doc sum,就会弹出 sum 的帮助界面。(有网络和无网络连接的情况下得到的界面可能会有差异,推荐大家联网查询)
(3)使用 help 命令
在 MATLAB 的命令行窗口输入 help 加上你要查询的命令名称, 就会返回给我们这个命令 的帮助信息。这个帮助信息没有上面两种方法得到的帮助文档详细, 可以视为完整的帮助文档 的概述。(有网络和无网络连接的情况下得到的信息可能会有差异)
(4)使用 edit 命令
edit 是编辑的意思, 如果直接在命令行窗口输入 edit,就会帮我们创建一个新的脚本文件, 并自动打开编辑器。我们可以使用 edit 加上要查找的命令,就能打开这个命令的 m 文件。在 这个 m 文件中, MATLAB 会通过注释的形式给我们提供帮助信息。
小技巧:代码中以百分号%开头的语句是 MATLAB 的注释信息,在运行代码时注释信息 不会被执行。注释能够帮助其他人更好地理解你的代码,未来你查看代码内容时也更加方便。 MATLAB 还专门设计了为选中行添加注释和取消注释的快捷键,分别是 Ctrl+R 和 Ctrl+T , 大家在以后的学习中也要养成写注释的好习惯。
2.6 MATLAB 的变量
变量是任何编程语言的基本元素之一,MATLAB 语言当然也不例外。顾名思义,变量指 的是在程序的运行过程可以改变的量, 它能用来表示存储的数据。通常我们会在程序开头对变 量赋值, 例如 a=3,这里的 a 就是一个变量, 它的名称就是 a,里面保存的数据是 3。与常规的 程序语言(例如 C 语言、Java)不同的是, MATLAB 并不要求事先对所使用的变量进行声明, 也不需要指定变量的类型, MATLAB 会自动根据所赋予变量的值或对变量所进行的操作来识 别变量的类型,这也是 MATLAB 适合入门的原因之一。
变量的命名
在 MATLAB 中变量的命名应遵循如下规则:
> 变量名必须以字母开头,之后可以是任意的字母、数字或下划线_。
> 变量名区分字母的大小写,例如 a 和 A 代表不同的变量。
> 变量名不超过 63 个字符,第 63 个字符以后的字符将被忽略。
> 不能定义与 MATLAB 关键字同名的变量(例如 if 或 end)。要获取关键字的完整列 表,请在命令行输入 iskeyword 并运行。
有效名称示例: | 无效名称示例: |
x6 | 6x |
lastValue | end |
n factorial | n! |
x_max_value | _max_x |
特殊变量
MATLAB 预定义了许多特殊变量,这些变量具有系统默认的含义,下表列举了常见的特殊变量:
特殊变量 | 描述 |
ans | 系统默认的用于保存运算结果的变量名 |
pi | 圆周率 π |
inf / -inf | 无穷大和负无穷大,注意 1/0 = inf |
NaN | 不定值或缺失值。例如计算 0/0 或 0*Inf 会返回 NaN |
i 和 j | 复数中的虚数单位,例如 3+4i 和 3+4j 表示同一个复数 |
eps | 浮点相对精度。这里涉及到浮点数计算精度的问题,学过 C 语言的同学应 该知道,计算机内部使用二进制 01 对浮点数进行编码,如果小数点后面位 数过长,计算机就无法准确表示。这里你可以简单的将 eps 看成一个非常 小的数, 这个数大约等于2.22 × 10 − 16 ,有时候不想分母为 0 时, 我们就可 以在分母上加上 eps。(未来涉及浮点数的关系运算时,我们还会谈到这一 点) |
你可以在命令行窗口输入这些特殊变量进行测试,例如,输入 pi:
MATLAB 给我们返回的结果是 3.1416,为什么会是这样一个不精确的数呢?
实际上这是 MATLAB 显示的原因, 在系统内部真正执行计算的时候, pi 是一个非常精确 的浮点数。大家可以双击工作区的 ans,然后双击第一个单元格的 3.1416,就会看到一个更加 精确的 pi 值:
另外,当你在命令行窗口输入 eps 时, MATLAB 会返回给我们:
这个结果出现了一个符号 e ,可能有些同学不太清楚,实际上这是 MATLAB 中的科学计 数法, 上面这个结果等于2.2204 × 10 − 16。类似的, 如果你以后看到 MATLAB 返回 8.51e4,实 际上就是8.51 × 104。
等号“=”给变量赋值
MATLAB 使用等号“=”给变量赋值,例如:“a=3”表示令变量 a 的值等于 3,大家可以 在命令行执行这行代码,然后在工作区就会出现名称为 a 的变量,其值为 3。
接下来, 大家可以重新在命令行执行“a=5”,这时候观察工作区, 你会发现 a 的值变成了 5,这说明在赋值过程中,如果赋值的变量已存在,则 MATLAB 将使用新值代替旧值。
小技巧:你不需要完整的重新输入“a=5 ”,点击键盘的“上箭头”,就会出现你输入过的 历史命令,你只需要将原来代码中的 3 改成 5 就可以啦。
大家也可以使用 MATLAB 打开本节的配套代码: “code2_6 ”进行学习。
打开 m 文件的方法有很多种。你可以直接点击 MATLAB 菜单栏——主页——打开, 然后 选择你要打开的代码文件; 也可以先将 MATLAB 的当前文件夹切换到保存有这个代码的文件 夹,然后再点击对应的文件打开(如果代码在压缩文件中, 请先解压后再打开)。
更改 MATLAB 的数值的显示格式
(1) 临时更改
我们可以使用 format 命令更改。在运行代码前, 我们在命令行窗口输入 format long g,这 样就能将 MATLAB 的显示设为长格式。(注: format long g 和 format longG 的效果完全一样, 它和 format long 的效果有细微区别。如果返回的数值非常的小或者非常的大, 设置成 format long g 后,得到的结果仍然会使用科学计数法表示。更多格式设置的选项大家可以看方案二)
(2) 永久更改
format 命令更改数值显示格式是临时的,关闭 MATLAB 后重新打开就会恢复成默认的格 式。我们在 MATLAB 的设置中永久更改。大家点击 MATLAB 菜单栏——主页——预设,就 能打开 MATLAB 的设置界面。我们可以点击命令行窗口,将数值格式设置为 long g 即可。
注意, 显示格式只影响数值的显示方式, 不会影响它们在 MATLAB 中的存储方式和计算 精度。关于 MATLAB 支持的数值显示的格式,大家可以使用 doc format 命令自行查阅帮助文 档。
小技巧: 使用 clc 命令可以清空命令行窗口;使用clear 命令可以清空工作区。
有时候, 一些计算结果并不需要在命令行显示, 那么我们可以在代码行的最后加上英文分 号“; ”,这样计算结果不会出现在命令行, 但在工作区仍然可以查看计算的结果。另外, 如果 想把两行代码放到同一行,这两行代码中间也用英文分号“;”隔开。
例如:新建一个脚本, 在里面输入下面三行代码,运行代码并查看命令行窗口和工作区。
a = 1; b = 2;
c = 3;
d = a+b+c
注意: 上面的代码中有三个英文分号“;”,第一个英文分号不能去掉, 它起着隔开两行命 令的作用; 后面的两个分号都能去掉, 例如去掉第二个分号后, 在命令行窗口也会出现 b=2 的 计算结果。
2.7 常见的数学运算函数
大家可以打开本节的配套代码: “code2_7 ”进行学习。
我们先来介绍最基本的五个运算符符号: + - * / ^ 。前面四个符号分别是加减乘除, 最后面的^表示乘方运算(按下键盘上的 Shift 和数字 6 键可以打出来)。
另外, 不同的运算符优先级不同, 所谓的优先级就是指计算的先后顺序。例如乘除运算的 优先级要高于加减运算。以后我们还会学一些运算符号,例如关系运算符大于号> ,大家不用 刻意去记这些运算符号的优先级, 因为我们可以通过添加小括号的方式改变运算的先后顺序, 这个道理想必大家小学就明白了: 3+5*2 的计算结果和(3+5)*2 不同。
接下来我们学习一组最基础的 MATLAB 数值运算的函数:
函数名 | 功能 | 计算结果 | ㅤ |
abs | 求绝对值,也可以用来计算复数的模长 | abs(1.5)
abs(- 1.5)
abs(3+4i) | % 1.5
% 1.5
% 5 |
floor | 朝负无穷大四舍五入(将结果四舍五入到小于或等于该元素的最 接近整数) | floor(1.1)
floor(1.9)
floor(-1.1)
floor(- 1.9) | % 1
% 1
% -2
% -2 |
fix |
朝零四舍五入(相当于删除小数部分,将其截断为整数) | fix(1.1)
fix(1.9)
fix(-1.1)
fix(- 1.9) | % 1
% 1
% -1
% - 1 |
ceil | 朝正无穷大四舍五入(将结果四舍五入到大于或等于该元素的最 接近整数) | ceil(1.1)
ceil(1.9)
ceil(-1.1)
ceil(-1.9) | % 2
% 2
% -1
% -1 |
round | 真正意义上的四舍五入函数(将 结果四舍五入为最近的整数,如果为 0.5,则会朝着偏离零的方向 调整)
round 函数还有第二种用法, 它可 以输入第二个参数:
round(X,N)可以将 X 在第 N 位数
四舍五入,分下面三种情况:
1) N > 0:四舍五入到小数点右侧 的第 N 位数。
2) N = 0:四舍五入到最接近的整 数。
3) N < 0:四舍五入到小数点左侧 的第 N 位数。 | ㅤ | |
mod | mod(a,m)可以计算 a 除以 m 后的余数,其中 a 是被除数, m 是除 数。 | ㅤ | |
sqrt | sqrt(a)可以计算 a 的平方根, 即对 a 开根号。如果 a 为负数则返回复 数结果。其结果和 a^(1/2)等价。 | sqrt(9) % 3
format long g % 计算结果显示为长格式 sqrt(2) % 1.414213562373095
sqrt(-4) % 2i | ㅤ |
exp | exp 函数可以计算以自然常数 e 为底的指数。 | exp(1)
exp(2)
exp(10) | % 2.7183
% 7.3891
% 2.2026e+04 |
log | log(x)用来计算以自然常数 e 为底 数的对数。 | log(2)
log(3)
log(exp(10)) | % 0.6931
% 1.0986
% 10 |
log2 或者log10 | 分别用来计算以 2 和 10 为底的对 数。 | ㅤ |
另外, MATLAB 中提供了一组“三角学”的函数,大家可以在官网找到:
正弦
正切
斜边
平方和的平方根(斜边) |
转换
我们常用的计算正弦、余弦和正切的三个函数分别是:sin、cos 和 tan,这三个函数 的输入参数是要计算的角度,且以弧度作为单位。例如sin(pi/6)和cos(pi/3)的计算结果等于0.5 , tan(pi/4)的计算结果等于 1;如果你要用角度来进行计算,你可以使用 sind 、cosd 和 tand 这一 组函数,例如 sind(30)和 cosd(60)的计算结果等于 0.5 ,tand(45)的计算结果等于 1。
另外, asin 、acos 和 atan 可用来计算反正弦、反余弦和反正切函数,返回的角度以弧度 作为单位。 MATLAB 官网上还给出了一些不太常用的三角学的函数,大家课后可以自己对照 帮助文档学习。
最后给大家讲两个易错点:
(1)MATLAB 的乘号不能省略。例如计算 sin(2π)时,我们要在 MATLAB 中输入 sin(2*pi), 中间的乘号不能省略。
(2)在对变量命名时,我们不要将变量命名为函数的名称, 否则会导致调用函数时出错。
例如: 误将 sin 作为了变量名。我们先计算 sin(pi/6),得到的结果为 0.5,结果正确; 然后我们 不小心将 sin 函数作为了一个变量名, 并对其进行了赋值, 例如 sin = 10;接着你再调用 sin(pi/6) 的命令, MATLAB 就会报错:下标索引必须为正整数类型或逻辑类型。这里 MATLAB 将 sin 作为了一个值为 10 的变量,替代了原来计算正弦函数的功能。至于为什么会报这个错误,需 要等大家学完下一章, 要解决这个错误的方法也很简单: 将变量 sin 从工作区删除。我们可以调用 clear 命令,后面跟上 sin,即 clear sin。
2.8 本章小节
- 了解了 MATLAB 的界面。 MATLAB 的界面由各个区域构成,区域的位置非常灵活, 可以自由调整,也可以恢复成默认布局。
- 学习了如何在 MATLAB 中创建后缀为.m 的普通脚本,并给大家介绍了在 MATLAB 新版本中引入的更强大的后缀为.mlx 的实时脚本。
- 新手非常容易出现一个错误: “未定义函数或者变量”, 如果 MATLAB 在当前文件夹 和搜索路径中都没有找到运行的文件时, 就会提示这个错误, 我们学会了如何解决利 用 MATLAB 的文件管理解决这个问题。
- 介绍了打开 MATLAB 代码的方式, 推荐大家通过修改 MATLAB 当前文件夹的方式来 打开代码。如果代码在压缩包中,请先解压到文件夹后再打开。
- 介绍了 MATLAB 的帮助系统, 与同类软件相比, MATLAB 的帮助系统非常完善, 大 家在未来的学习中要经常查阅 MATLAB 的帮助文档。
- 介绍了 MATLAB 变量命名的规范,并给出了 MATLAB 中预定义的特殊变量。
- MATLAB 的默认数值显示格式为短类型,我们学会了怎样去更改数值的显示格式。
- 介绍了 MATLAB 中常见的数学运算函数。未来使用时,大家可以直接查询讲义中提 供的表格,用多了大家自然就会记住了。
2.9 课后习题
课后习题作答Q1. 前面我们介绍了 MATLAB 的实时脚本,实时脚本的功能非常强大,未来的课程我们 主要使用实时脚本操作。关于实时脚本的使用方法, 我单独录制了一个视频, 请大家 在 b 站搜索《功能强大的 MATLAB 实时脚本》上学习观看,以后不再单独讲解。
Q2. 请完成下面的一系列任务:
第一步:在电脑桌面新建一个名为“第二章作业”的文件夹。
第二步:打开 MATLAB,新建一个脚本文件,在里面任意输入一些你学过的代码。 例如 sin(3/2*pi)等等。
第三步:将该脚本保存到“第二章作业”的文件夹中,命名为“homework.m”。 第四步:更改 MATLAB 的当前文件夹为“第二章作业”的文件夹。
第五步:执行你写的脚本,将计算结果作为注释放到每一行的后面。 第六步:清空工作区和命令行窗口。
第七步:将这个普通脚本转换成实时脚本。
第八步:运行实时脚本,将实时脚本导出为 PDF 格式保存。
Q3. 下面哪些选项作为变量名在 MATLAB 中不会报错:( ADF )
A 、abc_ B 、@a10 C 、end D 、qfzs E 、520ff F 、cos
Q4. (1)前面我们学习了计算对数的一组函数, 分别是 log, log2 和 log10,那么我们应该 怎样计算以任意正数为底的对数呢?例如计算log3 81=log81/log3。(2)请计算 sin(2π)的值, 如果 你得到的结果不是 0,应该怎么给别人解释? 浮点数的计算误差
Q5. 填空题:
(1) 命令 clear 可用来清空工作区;命令 clc 可用来清空命令行窗口。
(2) 如果我们不小心将函数 log 作为了变量名并将其赋值给了 5,然后在后面调 用 log(4)时会报错,这时我们应该:clear log 。
(3) 遇到错误“未定义函数或变量 homework”时, 可以 将当前文件夹改为所需文件夹 。
(4) MATLAB 使用 % 开头进行注释, 注释不会被运行。对多行进行注释的快捷键是 选中所需注释行+ctrl+R ,取消多行注释的快捷键是 选中不需注释行+ctrl+T 。
(5) 如果不需要在命令行显示计算结果, 我们可以在代码行的最后加上 ; 。
(6) 如果 MATLAB 返回 2.187e- 15,这个值代表的含义是 2.187*10^(-15) 。
(7) 要将 MATLAB 的数值显示设置为长格式, 你可以 format long g 。
(8) 如果你要查询 round 的使用方法,你可以 命令窗口输入help round 。
(9) 清风老师有 1314 颗糖,要平均分给班上的 52 名同学。如果有多的糖,就带回家给媳妇吃。那么每名同学可以分 fix(1314/52)或者 floor(1314/52) 颗糖,清风的媳妇可以分到 mod(1314,52) 颗糖。(填写 MATLAB 计算的表达式,下同)
(10)某天,清风举办婚礼消费了 61452 元,店家答应抹除低于 1000 元的零头, 那么清风还要出多少钱: fix(61452/1000)*1000或者 floor(1314/52)*1000或者61452-mod(61452,1000) 。
Q6. 补充的两道练习题:
(1) 给你一个常数 x ,如何利用本章所学知识判断 x 是小数还是整数?(本题至少 有两种不同的思路哦)
x-fix(x)是否为0
mod(x,1)是否为0
(2) 给你任意一个三位正整数 x,如何提取 x 的百位、十位和个位数, 并分别用 a、
b 、c 三个变量保存。例如 x = 567 时,我们要得到 a = 5 、b = 6 、 c = 7.
a=fix(x/100),b=mod(floor(x/10),10)或者b=fix(mod(x,100)/10),c=mod(x,10)
x=4567
a=mod(x,10),b=mod(fix(x/10),10),c=mod(fix(x/100),10),d=floor(x/1000)
本章作业答案可观看视频: