CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
一.MATLAB常用快捷键
-1.注释代码Ctrl+r
-2.调用历史命令上下光标键↑↓
-3.自动整理代码Ctrl+i
-4.代码自动补全Tab
-5.保存并运行代码F5
二.MATLAB变量与运算
-1.变量命名规则
-2.特殊变量表
-3.MATLAB运算符号
-4.数学函数
-5.标点符号
三.MATLAB控制流
-1.for循环
-2.while循环
-3.if-else-end结构
-4.switch-case结构
四.MATLAB数组
-1.数组的创建
-2.数组的方向
-3.数组元素的访问
-4.数组的运算
五.MATLAB矩阵
-1.矩阵的创建
-2.矩阵元素的访问
-3.矩阵的行删除与列删除
-4.矩阵的合并
-5.矩阵的运算
六.MATLAB自定义函数
-1.MATLAB函数的基本结构
-2.MATLAB函数调用
-3.MATLAB函数补充知识
回到顶部
MATLAB快速参考手册
一.MATLAB常用快捷键
-1.注释代码Ctrl+r
-2.调用历史命令上下光标键↑↓
-3.自动整理代码Ctrl+i
-4.代码自动补全Tab
-5.保存并运行代码F5
二.MATLAB变量与运算
-1.变量命名规则
-2.特殊变量表
-3.MATLAB运算符号
-4.数学函数
-5.标点符号
三.MATLAB控制流
-1.for循环
-2.while循环
-3.if-else-end结构
-4.switch-case结构
四.MATLAB数组
-1.数组的创建
-2.数组的方向
-3.数组元素的访问
-4.数组的运算
五.MATLAB矩阵
-1.矩阵的创建
-2.矩阵元素的访问
-3.矩阵的行删除与列删除
-4.矩阵的合并
-5.矩阵的运算
六.MATLAB自定义函数
-1.MATLAB函数的基本结构
-2.MATLAB函数调用
-3.MATLAB函数补充知识
回到顶部
# MATLAB快速参考手册 MATLAB是科技领域与工程领域方面最为优秀的应用软件和开发环境之一。MATLAB广泛应用于研究和解决工程问题,是理工科大学生必须掌握的基本技能之一。本参考手册只涉及MATLAB最基础最常用的部分,更详细的帮助文档请参考MATLAB官方文档。 ## 一.MATLAB常用快捷键
MATLAB提供了几十个快捷键,其中最常用的快捷键有以下几个。 ### 1.注释代码Ctrl+r
用鼠标选中需要注释的行,按Ctrl+r,选中的MATLAB代码就变为注释了。如果需要取消注释的话,用鼠标选中需要取消注释的行,按Ctrl+t。 ### 2.调用历史命令上下光标键↑↓
先将光标移动到命令行窗口,然后按上下光标键↑↓,可以调用MATLAB最近使用过的历史命令,便于快速重新执行。 ### 3.自动整理代码Ctrl+i
先用鼠标选择需要自动整理的代码段,按Ctrl+i,选中的MATLAB代码就自动按照代码结构整理好了,即自动调整代码缩进。 ### 4.代码自动补全Tab
先输入变量名或者命令名的前几个字母,按Tab,当只有一个以这些字母开头的命令时,将自动补全命令名。如果有多个以这些字母开头的命令时,将会显示一个命令名列表,方便从中选择。 ### 5.保存并运行代码F5
按快捷键F5可保存并直接运行程序。另外,设置断点后按F5运行程序,会在断点处停止运行,按F10可以单步运行调试。 ## 二.MATLAB变量与运算
### 1.变量命名规则
MATLAB中变量的命名规则: 1. 变量名必须是单个词; 2. 变量名区分大小写; 3. 变量名最多不超过63个字符; 4. 变量名必须以字母打头,之后可以是任意字母、数字或下划线, 5. 变量名中不允许使用下划线以外的标点符号。 如下代码所示均为合法的变量名: ```matlab a = 1; abc = 2; a_u = 3; s1 = "Hello"; s2 = "Hello World!"; ``` 尽管上述代码所示均为合法的变量名,在实际工程中,变量命名需要与变量的物理含义相关联,可以提高代码的可读性,降低代码的调试难度。 ### 2.特殊变量表
MATLAB中有一些特殊变量,是MATLAB中固定用途的一些变量: | 特殊变量 | 固定用途 | | -------- | ------------------------ | | ans | 用于保存运算结果的缺省变量名 | | pi | 圆周率,默认情况下取值3.1416 | | eps | 最小的一个数,默认情况下取值2.2204e-16 | | inf或者Inf | 无穷大 | | NaN或者nan | Not-a-Number,非数字 | | nargin | 函数的输入变量数目,只能在函数中使用 | | nargout | 函数的输出变量数目,只能在函数中使用 | 用户在自定义变量名称时需要避免使用特殊变量的名称,否则有可能会导致特殊变量的值处于不确定的状态从而导致程序运行出错并且难以调试。 ### 3.MATLAB运算符号
**数学运算符** MATLAB中常用的数学运算符号见下表: | 运算符号 | 说明 | 示例 | 示例运算结果 | |:----:| ---- | ------------ | ------------------ | | + | 加法运算 | 1+2 | 3 | | - | 减法运算 | 2-1 | 1 | | * | 乘法运算 | 2*3 | 6 | | / | 除法运算 | 2/4 | 0.5 | | .* | 点乘运算 | [1 2].*[3 4] | [3 8] | | ./ | 点除运算 | [1 2]./[3 4] | [0.3333 0.5000] | | ^ | 乘幂运算 | 2^3 | 8 | **关系操作符** MATLAB中常用的关系运算符号见下表: | 关系操作符 | 说明 | 示例 | 示例运算结果 | |:-----:| ---- | ---- | ------ | | < | 小于 | 1<2 | 1 | | <= | 小于等于 | 1<=2 | 1 | | > | 大于 | 3>2 | 1 | | >= | 大于等于 | 3>=2 | 1 | | == | 等于 | 2==2 | 1 | | ~= | 不等于 | 1~=2 | 1 | MATLAB中关系操作的结果均为1(代表逻辑正确)或者0(代表逻辑错误)。 **逻辑运算符** MATLAB中常用的逻辑运算符号见下表: | 逻辑运算符 | 说明 | 示例 | 示例运算结果 | |:-----:| ---- | ---------------------------------- | ------------- | | & | 与运算 | 1&1
1&0
0&0 | 1
0
0 | | '\|' | 或运算 | 1\|1
1\|0
0\|0 | 1
1
0 | | ~ | 非运算 | ~1
~0 | 0
1 | | xor | 异或运算 | xor(1,0)
xor(1,1)
xor(0,0) | 1
0
0 | 当以上逻辑运算符用于矩阵运算时,参与运算的是两个同阶矩阵的对应元素,运算结果也是一个同阶矩阵。 MATLAB中还有两个逻辑运算符:&&与||,分别是&与|的短路形式,&&与||不能用于矩阵运算,较少使用。 ### 4.数学函数
MATLAB中常用的数学函数见下表: | 函数 | 名称 | 示例 | 示例运算结果 | | --------- | -------- | ------------ | ---------- | | sin(x) | 正弦函数 | sin(pi/2) | 1 | | cos(x) | 余弦函数 | cos(pi/2) | 6.1232e-17 | | tan(x) | 正切函数 | tan(pi/2) | 1.6331e+16 | | asin(x) | 反正弦函数 | asin(1) | 1.5708 | | acos(x) | 反余弦函数 | acos(1) | 0 | | atan(x) | 反正切函数 | atan(1) | 0.7854 | | abs(x) | 绝对值 | abs(-1) | 1 | | sqrt(x) | 开平方 | sqrt(2) | 1.4142 | | exp(x) | 以e为底的指数 | exp(1) | 2.7183 | | log(x) | 自然对数 | log(2.7183) | 1.0000 | | log10(10) | 以10为底的对数 | log10(10) | 1 | | max(x) | 最大值 | max([1,2,3]) | 3 | | min(x) | 最小值 | min([1,2,3]) | 1 | | sum(x) | 元素的总和 | sum([1,2,3]) | 6 | ### 5.标点符号
MATLAB中常用的标点符号有四种: 1. 百分号%,百分号后面所有文字为注释,MATLAB另一种注释方法为双百分号。 2. 分号;,分号表示命令行结束,用分号结尾的语句不显示执行结果。 3. 逗号,,逗号表示平行语句,用逗号隔开的语句依次执行。 4. 点号...,点号表示续行,即下一行与当前行属同一行。 需要注意的是,所有标点符号均为英文标点符号,MATLAB不支持中文标点符号。 ## 三.MATLAB控制流
MATLAB提供多种决策或控制流结构:for循环、while循环、if-else-end结构、switch-case结构等。 ### 1.for循环
for循环允许一组命令以固定的和预定的次数重复,简单示例: ```matlab x = 1:10; for n = 1:10 x(n) = n * n; end ``` for循环需要以end结尾。 ### 2.while循环
while循环是另一种常用的循环结构,简单示例: ```matlab money = 100; i = 0; while i < 5 i = i + 1; money = money * 1.03; end ``` while循环需要以end结尾。 ### 3.if-else-end结构
if-else-end结构是常用的条件语句,包含多种变体,比如else可以省略,也可以有多个elseif语句,简单示例: ```matlab n = input('请输入一个数字,0代表女性,1代表男性: '); if n == 0 disp('女性') elseif n == 1 disp('男性') else disp('输入出错,无法确定性别!') end ``` ### 4.switch-case结构
switch-case结构是另一种常用的条件语句,简单示例: ```matlab n = input('请输入一个数字,0代表女性,1代表男性: '); switch n case 1 disp('男性') case 0 disp('女性') otherwise disp('输入出错,无法确定性别!') end ``` switch-case结构需要以end结尾。 ## 四.MATLAB数组
### 1.数组的创建
MATLAB创建数组的基本语法是使用中括号: ```matlab x = [1 3 6 8] ``` 对于一些特殊的数组,可以使用一些快捷语法创建数组,比如: ```matlab y = 1:10 %间隔为1的数组 z = 0:10:100 %间隔为10的数组 m = zeros(1,10) %10个元素的全0数组 ``` ### 2.数组的方向
MATLAB中默认的数组为行向量,如果需要创建列向量的话,元素之间需要使用分号: ```matlab xi = [1; 3; 6; 8;] ``` 将行向量转置运算也可以获得列向量: ```matlab yi = y' zi = z' ``` 在MATLAB工作空间中可以看到,行向量的元素之间使用逗号分隔,列向量的元素之间则使用分号分隔。 ### 3.数组元素的访问
访问数组中的单个元素:x(i)表示访问数组x的第i个元素。 访问数组中的一块元素: ```matlab y(2:5) %访问数组y的第2个到第5个元素 y(2:2:6) %访问数组y的第2个、第4个、第6个元素 ``` MATLAB访问数组使用小括号,MATLAB数组元素从1开始编号,这是与大多数编程语言是截然不同的。 ### 4.数组的运算
1. 计算数组的长度 使用length()函数可以计算数组的长度。 ```matlab x = [1 3 6 8] length(x) %结果为4 ``` 2. 数组与标量运算 数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算。 ```matlab x+1 %结果为 2 4 7 9 x*2 %结果为 2 6 12 16 ``` 3. 数组与数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的。 ```matlab x+x %结果为 2 6 12 16 x*xi %结果为110 xi*x %结果为如下矩阵: 1 3 6 8 3 9 18 24 6 18 36 48 8 24 48 64 ``` ## 五.MATLAB矩阵
### 1.矩阵的创建
MATLAB创建矩阵的基本语法是使用中括号,行内元素之间使用空格或者逗号,行与行之间使用分号: ```matlab m=[1 2 3 4; 5 6 7 8; 9 10 11 12] ``` 对于一些特殊的矩阵,可以使用一些快捷语法创建矩阵,比如: ```matlab m0 = zeros(3, 5) %创建一个3行5列的全0矩阵 m1 = ones(3, 6) %创建一个3行6列全1矩阵 m2 = eye(4,4) %创建一个4行4列的单位矩阵 ``` 函数zeros(x, y),ones(x, y),eye(x, y)的第一个参数x为0时,创建的矩阵只有1行,是1个行向量,行向量是只有1行的特殊矩阵。 ### 2.矩阵元素的访问
访问矩阵中的单个元素:m(x, y)表示访问矩阵m的第x行,第y列的某个元素。 访问矩阵中的某个行:m(2, :)表示访问矩阵m的第2行。 访问矩阵中的某个列:m(:, 2)表示访问矩阵m的第2列。 ### 3.矩阵的行删除与列删除
将某个行赋值空格可删除某个行,将某个列赋值空格可删除某个列,示例: ```matlab m(2, :) = [] %删除第2行 m(:, 2) = [] %删除第2列 ``` ### 4.矩阵的合并
可以使用中括号实现多个矩阵的合并,使用逗号分隔实现横向合并(即行数不变列数增多),使用分号分隔实现纵向合并(即列数不变行数增多),示例: ```matlab n1 = [m, m] %横向合并(即行数不变列数增多) n2 = [m; m] %纵向合并(即列数不变行数增多) ``` ### 5.矩阵的运算
1. 矩阵与标量运算 矩阵对标量的加、减、乘、除、乘方是矩阵的每个元素对该标量施加相应的加、减、乘、除、乘方运算。 ```matlab m0 = zeros(3, 5) m1 = m0 + 1 ``` 2. 矩阵与矩阵运算 MATLAB支持几乎所有矩阵与矩阵之间的运算。 ```matlab m1 = [1, 2; 3, 4]; m1 + m1 %矩阵加法 m1 * m1 %矩阵乘法 m1' %求矩阵的转置矩阵 isempty(m1) %判断矩阵是否为空,返回0或者1 size(m1) %计算矩阵的大小,返回矩阵的行数与列数 det(m1) %计算方阵的行列式 inv(m1) %计算方阵的逆矩阵 rank(m1) %计算矩阵的秩 [V,D] = eig(m1) %计算方阵的特征值与特征向量,D为特征值的对角矩阵,V为特征向量构成的矩阵 ``` ## 六.MATLAB自定义函数
### 1.MATLAB函数的基本结构
当输出参数(即函数的返回值)只有1个时,MATLAB函数的基本结构如下: ```matlab function output = 函数名(输入形参表: input1, ... , inputn) %注释说明部分 函数体代码部分 end ``` 当输出参数有多个时,MATLAB函数的基本结构如下: ```matlab function[输出形参表: output1, ...,outptn] = 函数名(输入形参表: input1, ... , inputn) %注释说明部分 函数体代码部分 end ``` **function**:表示编写的是一个函数; **输出形参表**,即函数的返回值,各返回值间用逗号隔开;(不需要像C语言那样,通过return到返回值来赋值,outp_args相应的参数可以直接使用) **函数名**:需要和m文件名保持一致 **输入形参列表**:即函数的各输入参数,用逗号隔开; **函数体**:完成函数的具体功能,是根据具体需要编写的;通过使用“函数的输入参数”、“自定义变量”、“流程控制结构”来实现; **end**:表示此函数结束。 只有1个输出参数的自定义函数示例: ```matlab function Vmax = vmax(X) Vmax = max(X); end ``` 有多个输出参数的自定义函数示例: ```matlab function [Vmax,Vmin] = vmaxmin(X) Vmax = max(X); Vmin = min(X); end ``` ### 2.MATLAB函数调用
当输出参数只有1个时,MATLAB函数调用的格式: ```matlab y = 函数名(输入实参表) ``` 例如调用上述vmax函数示例: ```matlab a = [1 2 3 4]; y = vmax(a) %输出y=4 ``` 当输出参数有多个时,MATLAB函数调用的格式: ```matlab [输出实参表] = 函数名(输入实参表) ``` 例如调用上述vmaxmin函数示例: ```matlab [x, y] = vmaxmin(a) %输出x=4 y=1 ``` ### 3.MATLAB函数补充知识
1. 函数中遇return语句时,将退出函数体,此函数调用结束。 2. 函数体里面也可以定义一个或几个函数,称为子函数;注意:子函数只能存在于主函数体内,不独立存在;子函数在主函数体内的位置可以任意,不影响使用;子函数只能被主函数以及其他位于同一主函数体下的子函数调用。 3. 在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。