MATLAB使用速成 第二章(MATLAB中的函数)

一、内置函数的使用

1、函数作用在标量上

函数f作用在标量x上,这与数学中的f(x)效果是一样的,而f(x)也是一个标量。

2、函数作用在矩阵上

函数f作用在矩阵A上,那么f将作用在矩阵A的每一个元素上,f(A)是一个与A同形状的矩阵。

二、常用的函数

大部分函数的输入既可以是标量、矢量,也可以是矩阵;如果函数定义的参数本身就是矢量,而函数的输入是矩阵(此时矩阵可看作是元素类型为列矢量的行矢量),则函数将作用在矩阵的各列上。

1、数学函数

|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 三角函数 | sin(x)、cos(x)、tan(x)、cot(x)、sec(x)、csc(x)、sinh(x)、cosh(x)、tanh(x)... |
| 反三角函数 | asin(x)、acos(x)、atan(x)、acot(x)、asec(x)、acsc(x)... |
| 指数运算类 | exp(x) ------ 自然指数(以e为底) pow2(x) ------ 以2为底的指数 |
| 对数运算类 | log(x) ------ x的自然对数(以e为底) log2(x) ------ 以2为底,x的对数 log10(x) ------ 以10为底,x的对数 |
| 幂运算类 | sqrt(x) ------ x的算术平方根 |
| 绝对值运算 | abs(x) ------ x的绝对值 |
| 复数类 | conj(z) ------ 复数z的共轭 real(z) ------ 复数z的实部 imag(z) ------ 复数z的虚部 angle(z) ------ 复数z的辐角 |
| 符号函数 | sign(x) ------ x为负则返回-1,x为正则返回1,x为0则返回0 |
| 取整函数 | round(x) ------ 对x四舍五入 fix(x) ------ 对x取整,舍弃小数点后的数值 floor(x) ------ 对x负向取整 ceil(x) ------ 对x正向取整 |
| 模运算 | mod(x,y) ------ 计算x除以y的余数(结果与y同号) rem(x,y) ------ 计算x除以y的余数(结果与x同号) |
| 生成数列 | linspace(a,b,n) ------ 生成元素值为a到b,步长为n的等差数列 logspace(a,b,n) ------ 生成元素值为,步长为n的等比数列 |
| 离散数学中的函数 | factor(x) ------ 对x进行因式分解 gcd(x,y) ------ 找出x与y的最大公因数 lcm(x,y) ------ 找出x与y的最小公倍数 rats(x) ------ 用分数表示x factorial(x) ------ 计算x的阶乘 primes(x) ------ 找出小于x的素数 isprime(x) ------ x为素数返回1,否则返回0 |

2、矩阵相关的函数

(1)常见矩阵生成函数:

|------------|----------------------------------------------------------------|
| zeros(m,n) | 生成一个m 行n列的零矩阵,m=n时可简写为 zeros(n) |
| ones(m,n) | 生成一个m行n列的元素全为 1 的矩阵, m=n时可写为 ones(n) |
| eye(m,n) | 生成一个主对角线全为 1 的 m 行 n 列矩阵,m=n时可简写为 eye(n),即为 n 维单位矩阵 |
| diag(X) | 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量;若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 |
| tril(A) | 提取一个矩阵的下三角部分 |
| triu(A) | 提取一个矩阵的上三角部分 |
| rand(m,n) | 产生 0~1 间均匀分布的随机矩阵 ,m=n 时简写为 rand(n) |
| randn(m,n) | 产生均值为0,方差为1的标准正态分布随机矩阵,m=n 时简写为 randn(n) |
| magic(m) | 创建m×m的魔方矩阵(行、列及对角元素之和均相等) |

(2)查看矩阵大小的函数:

|-------------------|-----------------|
| [a,b] = size(A) | 返回矩阵A的行数和列数 |
| size(A,1) | 返回矩阵A的行数 |
| size(A,2) | 返回矩阵A的列数 |
| length(x) | 返回向量x的长度 |
| length(A) | 等价于max(size(A)) |

(3)矩阵线性代数运算相关的函数:

|---------|-----------------|
| det(A) | 把n阶矩阵A视作行列式进行计算 |
| inv(A) | 求矩阵A的逆矩阵 |
| eig(A) | 求矩阵A的特征值 |
| rank(A) | 求矩阵A的秩 |

(4)数据分析函数:

①最大值与最小值:

|------------------|-------------------------------------------------------------------|
| max(x) | 求矢量x中元素的最大值;当x为矩阵时,返回值是含有各列最大值的行矢量 |
| [a,b] = max(x) | 求矢量x中元素的最大值和其所在位置,分别返回到a和b上;若x是矩阵,则返回两个行矢量,a表示x各列的最大值,b对应最大值元素的位置 |
| max(x,y) | 矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最大值创建一个新的矩阵 |
| min(x) | 求矢量x中元素的最小值;当x为矩阵时,返回值是含有各列最小值的行矢量 |
| [a,b] = min(x) | 求矢量x中元素的最小值和其所在位置,分别返回到a和b上;若x是矩阵,则返回两个行矢量,a表示x各列的最小值,b对应最小值元素的位置 |
| min(x,y) | 矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最小值创建一个新的矩阵 |

②平均值、中间值和众数:

|-----------|------------------------------------|
| mean(x) | 求矢量x中元素的平均值;当x为矩阵时,返回值是含有各列平均值的行矢量 |
| median(x) | 求矢量x元素的中间值;当x为矩阵时,返回值是含有各列中间值的行矢量 |
| mode(x) | 求数组x(矢量/矩阵)中出现次数最多的数,即众数 |

③求和与乘积:

|----------|-------------------------------------|
| sum(x) | 求矢量x中各元素的和;当x为矩阵时,返回值是包含各列元素之和的行矢量 |
| prood(x) | 求矢量x中各元素的乘积;当x为矩阵时,返回值是包含各列元素乘积的行矢量 |

④排序:

|-------------------|-----------------------------------------------------|
| sort(x) | 对矢量x按升序排序;若x是矩阵,则按列进行升序排序 |
| sort(x,'descend') | 对矢量x按降序排序;若x是矩阵,则按列进行降序排序 |
| sortrows(x) | 以矩阵x第一列数据为准,升序排序矩阵x的各行 |
| sortrows(x,n) | 以矩阵x第n列数据为准,升序排序矩阵x的各行(若n为负数,则以第-n列数据为准按降序排列矩阵x的各行) |

⑤统计:

|--------|------------------------------|
| std(x) | 计算矢量x的标准差;若x是矩阵,则计算x各列数据的标准差 |
| var(x) | 计算矢量x的方差;若x是矩阵,则计算x各列数据的方差 |

相关推荐
我爱C编程14 分钟前
基于Qlearning强化学习的机器人路线规划matlab仿真
matlab·机器人·强化学习·路线规划·qlearning·机器人路线规划
Evand J16 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
孤亭远见20 小时前
COMSOL with Matlab
matlab
图南楠1 天前
simulink离散传递函数得到差分方程并用C语言实现
matlab
信号处理学渣1 天前
matlab画图,选择性显示legend标签
开发语言·matlab
机器学习之心1 天前
Bayes-GRU-Attention的数据多特征分类预测Matlab实现
matlab·分类·gru
叶庭云1 天前
Matlab 和 R 语言的数组索引都是从 1 开始,并且是左闭右闭的
matlab·编程语言·r·数组索引·从 1 开始
γ..2 天前
基于MATLAB的图像增强
开发语言·深度学习·神经网络·学习·机器学习·matlab·音视频
IT猿手2 天前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
超级大咸鱼2 天前
CW信号的正交解调
matlab·verilog·fpga·数字信号·解调·正交解调·cw