使用指南
- 本文 Code block 中的注释采用 C++ 单行注释样式,即
//
- 例子中的 Code block 为在 MATLAB R2021a 环境下的 Command Window 显示内容
- 本文在矩阵部分内容遵从中国大陆的命名方式,即 Row 为行,Column 为列
- 由于内容较为庞大,建议在桌面端浏览本页面,请善用目录
- 部分内容可能过时或出现纰漏,且不展开完整的指令库,如遇问题请求助 Documentaion
本文将不断更新,迭代信息请参考更新日期
笔记正文
一、 基本操作
MATLAB 系统环境
有四大主窗口
- MATLAB Rxxxxa //主窗口
- Current folder
- Command Window
- Workspace
命令提示符 >>
当 Command Window 出现此符号时表示 MATLAB 已就绪,可以输入命令
此时点击 PgUp/PgDn 来上翻/下翻命令记录
续行符 ...
在一串命令后加上此符号时表示将下一行的命令续在上一行上,为同一条命令。
示例:
>> s = 1/2 + 1/3 + 1/4 + ...
1/5 + 1/6 + 1/17
清除 Command Window clc
执行该命令将会清除 Command Window 上的内容
Current folder
可以使用命令来操控当前文件夹
使用 cd
(Change Directory) 指令更改文件夹
>> cd D:
设置当前文件夹为 D:\
使用 mkdir
(Make directory) 指令创建文件夹
>> mkdir work
此时在 D:\ 下创建了文件夹 \work
可使用
cd D:\work
指令进入该文件夹
Workspace
工作区(Workspace)是 MATLAB 用于存储各种变量和结果的内存空间, 可用于变量的显示和操作
MATLAB 的搜索路径
当搜索一个字符串时,MATLAB 按照以下类型顺序进行检索:
- 变量
- 内部函数
- 程序文件
- 当前文件夹下的文件
- 文件搜索路径文件夹中的程序文件
请注意!不要使用和 MATLAB 函数名相同的名字用作变量
清除命令 clear
>> clear
使用 clear
加上函数名来清除特定的变量:
>> clear cos
执行后将清除工作区的全部变量
命令行分号使用
在命令后加上分号 ;
结果将不会立即显示
设定路径命令 path
>> path(path,'D:\work')
将 D:\work 文件夹纳入搜索路径
或者在 Home(选项卡)- ENVIRONMENT(Section)- Set Path 来设定路径。
变量
MATLAB 使用变量无需 declaration,直接赋值即可
e.g.A = 10
使用 iskeyword
来查看什么不能作为变量名: >> iskeyword
作为一个工程计算器
基本的四则运算和幂运算: + - * / ^
ans
为默认的输出输出结果
规则
- 从左到右进行运算
- 运算优先级
- 括号
()
- 乘方
^
- 乘除
* /
- 加减
+ -
嵌入式函数(复合函数)
e.g.
f(g(x)) = f(alpha), alpha = g(x);
MATLAB 数值数据
数值数据的分类
- 整型
- 浮点型
- 复数型
整型数据转换
uint8
将数据转化为无符号 8 位整数。
int8
将数据转化为有符号 8 位整数。
示例:
>> x=int8(129)
x =
int8
127 //因为 int8 最大值为 127,此处自动转化为 127
>> x=uint8(129)
x =
uint8
129
浮点型
浮点型分为单精度(占用 4 Byte)和双精度(占用 8 Byte)
在 MATLAB 中,浮点型默认为双精度型数据
可使用 single
函数转化为单精度型;
使用 double
函数转化为双精度型;
>> class(4) //使用 class 函数查看其数据类型
ans =
'double' //说明默认为双精度类型
>> class(single(4))
ans =
'single'
复数型
复数型数据包含实部和虚部,二者默认为双精度型;
虚数单位用 i 或者 j 表示:
>> 6 + 5i
ans =
6.0000 + 5.0000i
>> 6 + 5j
ans =
6.0000 + 5.0000i
使用 real
函数求复数实部; 使用 imag
函数求复数虚部
数值数据输出格式 format 命令:format 格式符
e.g.
>> format long //输出 long 格式,保留小数点后 15 位
>> 50/3
ans =
16.666666666666668
>> format //默认输出 short 格式,保留小数点后 4 位
>> 50/3
ans =
16.6667
注意!format 指令只影响输出格式,不影响计算和储存
快速查询变量 使用 who 命令来查看所有变量 >> who
使用 whos 命令来查看变量更多的信息
>> whos
示例:
>> A=10
A =
10
>> whos
Name Size Bytes Class Attributes
A 1x1 8 double
数学函数 函数调用格式为:
function(value)
//function 为函数名,value 为函数自变量的值(矩阵变量)
e.g.
>> A=[4,2;3,6]
A =
4 2
3 6
>> B=exp(A)
B =
54.5982 7.3891
20.0855 403.4288
使用了自然指数函数 exp
常见数学函数的应用
- 三角函数
默认以弧度制为单位,使用角度制需要在函数名后加
d
e.g.
>> sin(pi/2)
ans =
1
>> sind(90)
ans =
1
- ABS 函数
>> abs(-4)
ans =
4
>> abs(3+4i)
ans =
5
>> abs('a')
ans =
97
MATLAB Calling Priority
- Variable
- Built-in function
- Subfunction
- Private function
- MEX-file
- P-file
- M-file
二、向量和矩阵
Row Vector
>> a = [1 2 3 4]
Column Vector
>> b = [1;2;3;4]
>> a*b //点积运算
ans =
30
>> b*a //叉积运算
ans =
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Matrix
在一个 Row 里面用空格空开,换行时用分号分开
Array Indexing 数组索引
- 使用 array(n) 来检索数组名为 array 的第 n 项 示例:
>> a=[1,2,3,4]
a =
1 2 3 4
>> a(3)
ans =
3
- 矩阵内检索
方法一:使用 A(x,y) 来检索矩阵名为 A 的 第 x 行,第 y 列
方法二:使用 A(n) 来检索矩阵名为 A 的 Matrix,以 先由上至下,后由左至右 的顺序编号。
从 1 号到 9 号 其顺序为:
检索方式如下:
Type 1
>> A(3,2)
//第三行第二列,即
>> A([1 3],[1 3])
//逗号前为 Row,逗号后为 Column;调取第 1、3 条 Row 和第 1、3 条 Column 的交集形成矩阵:
Type2:
>> A(8)
//按照 “先由上至下,后由左至右” 的顺序检索第 8 个,即为
>> A([1,3,5])
//按照上述顺序检索第 1, 3, 5 个,即为
>> A([1 3;1 3])
//按照上述顺序,形成矩阵:
替换矩阵元素 Replacing Entries
直接将某个值赋给矩阵的元素:
A(x,y)= K
将 K 赋给 A 矩阵中第 x 行,第 y 列的元素