目录
- 前言
- 用户自定义函数
- 生成矩阵的函数
- 生成特殊值的矩阵
- 生成所有元素均为无穷大的矩阵 inf
- 生成全零矩阵 zeros
- 生成全一矩阵 ones
- 生成指定值的矩阵
- 生成对角阵 diag
- 快捷功能
- 返回矩阵维度 size
- 求和 sum
- 重构矩阵 reshape
- 浮点数表示范围
- 最大正浮点数 realmax
- 最小正浮点数 realmin
- 逻辑函数
- 矩阵所有元素与 all
- 矩阵所有元素或 any
- 矩阵标量异或 xor
- 随机数
- 以向量形式返回当前日期和时间 clock
- 控制随机数生成 rng
- 生成(0, 1)内均匀分布的随机浮点数 rand
- 生成指定范围内均匀分布的随机整数 randi
- 生成指定范围内均匀分布的随机浮点数 unifrnd
- 生成标准正态分布的随机浮点数 randn
- 复数相关函数
- 求根
- 求实数的实根 nthroot
- 在复平面上求多项式方程的所有根 roots
前言
本文对MatLab常用库函数做了分类和索引,本文只M函数功能做简要介绍,具体功能请自行上机实验
用户自定义函数
MatLab支持用户自定义函数,格式如下:
function[y1, ..., yn] = myfun(x1, ..., xm);
%insert code
end
注意用户自定义函数必须新建文件保存,且文件名必须和函数名一样
生成矩阵的函数
生成特殊值的矩阵
生成所有元素均为无穷大的矩阵 inf
inf(m, n) 生成m * n的全inf矩阵
生成全零矩阵 zeros
zeros(n) 生成n * n全零矩阵
zeros(m, n) 生成m * n全零矩阵
zeros([m, n]) 生成m * n全零矩阵
生成全一矩阵 ones
ones(n) 生成n * n全一矩阵
ones(m, n) 生成m * n全一矩阵
ones([m, n]) 生成m * n全一矩阵
生成指定值的矩阵
生成对角阵 diag
diag(b) 通过向量b构造对角方阵
快捷功能
返回矩阵维度 size
size(A) 返回矩阵A的维度,如果A是一个2 * 3的矩阵,则size(A)返回向量[2, 3]
求和 sum
sum(b) 返回行向量或列向量b的和
sum(A) 返回一个行向量,行向量每个元素的值是矩阵A对应下标列向量的和
重构矩阵 reshape
reshape(A, m, n) 将矩阵A重构成一个m * n的矩阵
reshape(A, [m, n])将矩阵A重构成一个m * n的矩阵
reshape(A, m, n, l, …) 将矩阵A重构成一个m * n * l * …的多维数组
注意:重构后的矩阵必须与重构前元素数目相同
浮点数表示范围
最大正浮点数 realmax
realmax(‘double’) 返回双精度的最大正浮点数
realmax(‘single’) 返回单精度的最大正浮点数
realmax同时也是专用变量,realmax == realmax(‘double’)
最小正浮点数 realmin
realmin(‘double’) 返回双精度的最大正浮点数
realmin(‘single’) 返回单精度的最大正浮点数
realmin同时也是专用变量,realmin == realmin(‘double’)
逻辑函数
矩阵所有元素与 all
all(A) 返回矩阵A所有元素的与值,全1出0,有0出1
all(A, 2) 返回一个列向量,列向量的每个元素都是矩阵A对应行元素的与值
矩阵所有元素或 any
any(A) 返回矩阵A所有元素的或值,全0出0,有1出1
ans(A, 2) 返回一个列向量,列向量的每个元素都是矩阵A对应行元素的或值
矩阵标量异或 xor
xor(A, B) 返回矩阵A和B的同型矩阵C,C的每一个元素都是A和B对应位置元素的异或
随机数
以向量形式返回当前日期和时间 clock
clock 返回一个反应当前时间和日期的向量
常用作初始化随机数种子
控制随机数生成 rng
rng(seed) 以非负整数seed为随机数种子,如rng(sum(clock));
rng(‘shuffle’) 根据当前时间设置随机数种子
rng(seed, generator)
rng(‘shuffle’, generator) generator是生成随机数的方式,推荐使用’twister’
rng(‘default’) 重置随机数生成器设置
生成(0, 1)内均匀分布的随机浮点数 rand
rand 生成一个的随机标量
rand(m, n) 生成m * n的随机数矩阵
rand([m, n]) 生成m * n的随机数矩阵,[m, n]是一个1 * 2的行向量
生成指定范围内均匀分布的随机整数 randi
randi(iMax) 返回一个(1, imax)内的随机整数
randi(iMax, m, n) 返回一个m * n的矩阵,矩阵的每个元素都是(1, imax)内的随机整数
randi(iMax, [m, n]) 返回一个m * n的矩阵,[m, n]是一个1 * 2的行向量
生成指定范围内均匀分布的随机浮点数 unifrnd
调用此函数时,必须保证指定范围的下限<=上限,否则会返回nan
unifrnd(c1, c2):c1和c2是标量,返回一个c1 ~ c2范围内的随机数
unifrnd(c1, c2, b):c1和c2是标量,b是一个1 * 2的行向量,即b = [m, n],此调用返回一个m * n的矩阵,该矩阵每个元素都是c1 ~ c2范围内的随机数
unifrnd(A, B):A和B是同型矩阵,返回一个同型矩阵C,矩阵C的每一个元素cij都是aij ~ bij范围内的随机数
特别地,当A和B是向量时,A和B必须是同型向量,即unifrnd()函数对行向量和列向量不等价
(MatLab中许多函数对行向量和列向量等价)
生成标准正态分布的随机浮点数 randn
randn 返回一个标准正态分布的随机数
randn(m, n) 返回一个m * n的矩阵,矩阵的每一个元素都满足标准正态分布
randn([m, n]) 返回一个m * n的矩阵,[m, n]是一个1 * 2的行向量
复数相关函数
read(z) 返回复数z或矩阵z的实部
imag(z) 返回复数z或矩阵z的虚部
abs(z) 返回复数z或矩阵z的模
angel(z) 返回复数z或矩阵z的幅角
求根
求实数的实根 nthroot
nthroot(a, n) 求实数a的n次根
在复平面上求多项式方程的所有根 roots
roots(b) 求向量b所表示的多项式方程的根,以列向量的形式返回
b = [a1, a2, a3, …, b]代表多项式方程a1 * x ^ n + a2 * x ^ (n - 1) + … + b = 0