Matlab帮助系统
- 查询函数(知道函数名):help + 函数名
- MATLAB联机帮助:helpwin
- 查询函数(不知道全部函数名,模糊查询):lookfor + 函数信息
- 运行MATLAB演示程序:demo
- 运行MATLAB漫游程序:tour
- 在网络浏览器中显示指定内容的HTML格式的帮助文本,或者启动helpdesk:doc
- 列出当前工作空间中的变量:who
- 内存变量信息:whos
- 列出当前文件夹或指定目录下的M文件,MAT文件和MEX文件:what
- 确定文件位置:which
- 检查指定变量或文件的存在性:exist
MATLAB常用操作命令
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
clf | 清楚图形窗口 | hold | 保持图形 |
diary | 日志文件 | load | 加载指定文件的变量 |
dir | 显示当前目录下文件 | pack | 整理内存残片 |
disp | 显示变量或文字内容 | path | 显示搜索目录 |
echo | 命令行窗口信息显示开关 | quit | 退出MATLAB2018 |
save | 保存内存变量指定文件 | type | 显示文件内容 |
MATLAB中的常量
常量名称 | 说明 |
---|---|
ans | MATLAB中的默认变量 |
pi | 圆周率 |
eps | 浮点运算的相对精度 |
inf | 无穷大,如1/0 |
NaN | 不定值,如0/0,∞/∞,0*∞ |
i(j) | 复数中的虚数单位 |
realmin | 最小正浮点数 |
realmax | 最大正浮点数 |
format命令
MATLAB在默认情况下,若数据为整数,就以整数表示,若数据为实数,则以保留小数点后4位的精度近似表示。用户可以改变数字显示格式,控制数字显示格式的命令是format。
调用格式 | 说明 |
---|---|
format short | 5位定点表示(默认值) |
format long | 15位定点表示 |
format short e | 5位浮点表示 |
format long e | 15位浮点表示 |
format short g | 在5位定点和5位浮点中选择最好的格式表示,MATLAB自动选择 |
format long g | 在15位定点和15位浮点中选择最好的格式表示,MATLAB自动选择 |
format rat | 以有理数形式表示 |
format hex | 十六进制格式表示 |
format + | 在矩阵中,用符号+、-和空格表示正号、负号和零 |
format bank | 用美元和美分定点表示 |
format compact | 变量之间没有空行 |
format loose | 变量之间有空行 |
MATLAB语言的关系运算符
只有不等于的运算符与C语言不一样,其他都一样。
不等于在MATLAB里是:~=
MATLAB语言的逻辑运算符
运算符 | 定义 |
---|---|
& | 逻辑与。两个操作数同时为1时,结果为1,否则为0 |
| | 逻辑或。两个操作数同时为0时,结果为0,否则为1 |
~ | 逻辑非。当操作数为0时,结果为1,否则为0 |
xor | 逻辑异或。两个操作数相同时,结果为0,否则为1 |
any | 有非零元素则为真 |
all | 所有元素均非零则为真 |
在算术、关系、逻辑3种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符优先级最低。在逻辑运算符中,“ 非 ” 的优先级最高,“ 与 ” 和 “ 或 ” 有相同的优先级。
MATLAB复数运算
MATLAB提供的复数函数有:
函数名 | 计算结果 |
---|---|
Abs | 模 |
Angle | 复数的相角 |
Complex | 用实部和虚部构造一个复数 |
Conj | 复数的共轭 |
Imag | 复数的虚部 |
real | 复数的实部 |
unwrap | 调整矩阵元素的相位 |
isreal | 是否为实数矩阵 |
cplxpair | 把复数矩阵排列成复共轭对 |
MATLAB向量
向量的创建
冒号法创建向量
基本格式是:
x = first:increment:last
表示创建一个从first开始,到last结束,数据元素的增量为increment的向量,若增量为1,上面创建向量的方式简写为:x = first : last
利用函数linspace创建向量
linspace通过直接定义数据元素个数,而不是数据元素之间的增量来创建向量。此函数调用格式如下:
linspace (first_value , last_value , number)
该调用格式表示创建一个从first_value开始到last_value结束,包含number个元素的向量。
利用函数logspace创建一个对数分隔的向量
与linspace一样,logspace也通过直接定义向量元素个数,而不是数据元素之间的增量来创建数组。logspace的调用格式如下:
logspace (first_value , last_value , number)
表示创建一个从10^first_value开始,到10^last_value结束,包含number个数据元素的向量。
向量元素引用的方式
格式 | 说明 |
---|---|
x(n) | 表示向量中的第n个元素 |
x(n1:n2) | 表示向量中的第n1至n2个元素 |
x(n1:increment:n2) | 表示从第n1个元素开始取,下标增量为increment取到下标为n2为止 |
向量的运算
向量的点积运算
在MATLAB中,对于向量a,b,其点积可以利用命令dot算出,该命令的调用格式如下:
调用格式 | 说明 |
---|---|
dot(a,b) | 返回向量a和b的点积,即对应元素相乘再相加。需要说明的是,a和b必须同维。 |
dot(a,b,dim) | 返回向量a和b在dim维的点积 |
【注】向量a,b的点乘,即a.*b得到的是一个向量,而利用dot点积运算的结果是一个数。
向量的叉积运算
在空间几何学中,两个向量叉乘的结果是一个过两相交向量交点且垂直于两向量所在平面的向量。在MATLAB中,向量的叉积运算可由函数cross来实现。cross函数调用格式如下:
调用格式 | 说明 |
---|---|
cross(a,b) | 返回向量a和b的叉积。需要说明的是,a和b必须是3维的向量 |
cross(a,b,dim) | 返回向量a和b在dim维的叉积。需要说明的是,a和b必须有相同的维数。 |
MATLAB多项式
多项式的创建
函数poly2sym()来创建
其调用格式如下:
poly2sym(p)
其中,p为多项式的系数向量
多项式的运算
乘法运算
多项式乘法用函数conv(p1,p2)来实现,相当于执行两个数组的卷积。
除法运算
多项式的除法用函数deconv(p1,p2)来实现,相当于执行两个数组的解卷。
调用格式如下:
[k,r] = deconv(p,q)
其中k返回的是多项式p除以q的商,r是余式。
[ k, r ] = deconv(p,q) 等价于 p = conv(q,k) + r
求导
多项式导数运算用函数polyder来实现,其调用格式为:
polyder(p)
其中p为多项式的系数向量。
MATLAB矩阵
MATLAB以矩阵作为数据操作的基本单位,这使得矩阵运算变得非常简捷、方便、高效。
矩阵的创建
直接按行输入
- 输入矩阵时要以“ [ ] ”为其标识符号,矩阵的所有元素必须都在中括号内。
- 矩阵同行元素用逗号或空格分隔,行与行之间用分号或回车键分隔
- 矩阵大小不需要预先定义
- 矩阵元素可以是运算表达式
- 若“ [ ] ”中无元素,表示空矩阵
利用M文件创建
当矩阵的规模比较大时,可以将所要输入的矩阵按格式先写入一文本文件中,并将此文件以.m为其扩展名,即M文件。
M文件是一种可以在MATLAB环境下运行的文本文件,它可以分为命令式文件和函数式文件两种。在此处主要用到的是命令式M文件,用它的简单形式来创建大型矩阵。在MATLAB命令行窗口中输入M文件名,所要输入的大型矩阵即可被输入到内存中。
【注】M文件中变量名与文件名不能相同,否则会造成变量名和函数名的混乱。运行M文件时,需要先将M文件xxx.m复制到当前目录文件夹下,否则运行时无法调用。
利用文本文件创建
MATLAB中的矩阵还可以由文本文件创建,即在文件夹中建立txt文件,在命令行窗口中直接调用此文件名即可。
利用函数生成某些特定矩阵
矩阵元素的修改
命令格式 | 说明 |
---|---|
C = [ A B ] | 将A和B按行拼接 |
C = [ A ; B ] | 将A和B按列拼接 |
A(m,:) = [] | 删除A的第m行 |
A(:,n) = [] | 删除A的第n列 |
A(m,n) = a A(m,:) = [a b …] A(:,n) = [a b …] | 对A的第m行第n列的元素赋值 对A的第m行赋值 对A的第n列赋值 |
矩阵的抽取
对矩阵元素的抽取主要是指对角元素和上(下)三角阵的抽取。对角矩阵和三角矩阵的抽取命令
常用的矩阵函数
矩阵奇异值计算
MATLAB特殊变量
特殊变量包括单元型变量和结构型变量,这两种数据类型的特点是允许用户将不同但是相关的数据类型集成一个单一的变量,方便数据的管理。
单元型变量
单元型变量是以单元为元素的数组,每个元素称为单元,每个单元可以包含其他类型的数组,如实数矩阵、字符串、复数向量。单元型变量通常由“ { } ”创建,其数据通过数组下标来引用。引用下标用的是大括号。
单元型变量的创建
有两种方式,一种是用赋值语句直接定义,另一种是由cell函数预先分配存储空间,然后对单元元素逐个赋值。
- 赋值语句直接定义
单元型变量的定义需要使用大括号,而元素之间由逗号隔开。每个元素数据类型可以不同。
- 对单元的元素逐个赋值
该方法的操作方式是先预分配单元型变量的存储空间,然后对变量中的元素逐个进行赋值。实现预分配存储空间的函数是cell。
cell(N) | 生成一个nxn阶的置空的单元数组 |
cell(M,N) / cell([M,N]) | 生成一个mxn阶的置空的单元数组 |
cell(M,N,P…) | 生成mxnxp…阶的置空的单元数组 |
cell(size(A)) | 生成与A同形式的单元型的置空矩阵 |
结构型变量
结构型变量是根据属性名组织起来的不同数据类型的集合。结构的任何一个属性可以包含不同的数据类型,如字符串、矩阵等。
结构型变量的创建和引用
结构型变量用函数struct来创建,其调用格式如下:
调用格式 | 说明 |
---|---|
s = struct ( ' field1 ' , { } , ' field2 ' , { } , … ) | 表示建立一个空的结构数组,不含数据 |
s = struct ( ' field1 ' , values , ' field2 ' , values2 , …) | 表示建立一个具有属性名和数据的结构数组 |
其中,field表示属性名。
创建结构型变量演示:
有点像字典
有个注意的点:
MATLAB符号运算
在科学研究中常常涉及两种不同性质的计算问题,即数值计算和符号计算。在1946年第一台电子计算机问世之后,数值计算的问题就得到了较令人满意的解决。而符号计算则一直得不到很好的发展。在数值计算中,计算机处理的对象和得到的结果都是数值,而在符号计算中,计算机处理的数据和得到的结果都是符号。这种符号可以是字母、公式,也可以是数值,但它与纯数值计算在处理方法、处理范围、处理特点等方面有较大的区别。可以说,数值计算是近似计算;而符号计算则是绝对精确的计算。它不容许有舍入误差,从算法上讲,它是数学,它比数值计算用到的数学知识更深更广。
符号表达式与数值表达式的相互转换主要是通过函数eval和sym实现的。其中,eval函数用于将符号表达式转换成数值表达式,而函数sym用于将数值表达式转换成符号表达式。
调用格式 | 说明 |
---|---|
eval ( expression ) | expression是指含有有效的MATLAB表达式的字符串,如果需要在表达式中包含数值,则需要使用函数int2str、num2str或者sprintf进行转换。 |
[op1,…,opN] = eval ( expression ) | op是指表达式的输出 |
sym ( p ) | p是指数值表达式 |
Subs ( S,old,new ) | 返回S的一个 拷贝,将S中所有old变量替换为new变量,并且直接计算S的值。 |