MatLab库函数

前言

本文对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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值