- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线版
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据导出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - if-end 语句
- MATLAB - if-else 语句
- MATLAB - if-elseif-else 语句
- MATLAB - 嵌套 if 语句
- MATLAB - switch 语句
- MATLAB - 嵌套 switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - for 循环
- MATLAB - while 循环
- MATLAB - 嵌套循环
- MATLAB - break 语句
- MATLAB - continue 语句
- MATLAB - end 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - return 语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级
- MATLAB - map 函数
- MATLAB - mean 函数
- MATLAB - end 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - try...catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 格式化图形
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面图
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换函数
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 为坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户自定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯型
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵求逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 数组函数
数组函数是 MATLAB 的一个基本方面,因为它们允许你高效地对数组(也称为矩阵)执行运算。
让我们看看下面列出的所有这些数组函数,包括解释和示例。
函数名称 | 描述 |
---|---|
zeros | 此函数将创建一个全为零的数组。 |
ones | 此函数将创建一个全为一的数组。 |
eye | 此函数用于创建单位矩阵。单位矩阵是对角线元素为 1,其余元素为 0 的矩阵。 |
rand | 此函数帮助你生成均匀分布的随机数矩阵。 |
randn | 此函数帮助你生成正态分布的随机数矩阵。 |
size | 此函数将矩阵的大小作为行向量返回。例如,如果矩阵的大小为 mxn,它将返回 [m,n]。 |
reshape | 此函数用于重新整形给定的数组。 |
transpose | 这将给出给定矩阵的转置。 |
max | 这将返回数组或行向量中的最大元素。 |
min | 这将返回数组或行向量中的最小元素。 |
sum | 此函数将给出数组元素的总和。 |
mean | 此函数将给出给定数组的平均值。 |
diag | 此函数用于创建一个对角矩阵。 |
unique | 这将返回给定数组或矩阵中的唯一元素。 |
sort | 此函数将对数组元素进行排序。 |
函数名称:zeros()
此函数用于创建全为零的矩阵或数组。
语法
Z = zeros(n)
使用函数 zeros(n) 将返回一个 nxn 的全零矩阵。
示例
A = zeros(3)
执行后,你将得到以下输出:
A = 0 0 0 0 0 0 0 0 0
你也可以指定所需的大小,例如 zeros(4,2),输出将是:
ans = 0 0 0 0 0 0 0 0
函数名称:ones()
你将得到一个全为一的数组或矩阵。
语法
A = ones(n) A = ones(sz1…szN)
ones(n) 将创建一个 nxn 大小的矩阵。ones(sz1…sz1n) 将创建一个大小为 sz1xszn 的矩阵。
示例
A = ones(4)
当你在 matlab 命令窗口中执行相同的操作时,输出为:
A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
让我们创建一个 3x2 维的全一矩阵,如下所示:
A = ones(3,2)
当你在 matlab 命令窗口中执行相同的操作时,输出为:
A = 1 1 1 1 1 1
函数名称:eye()
使用上述函数,你将得到一个单位矩阵。
语法
I = eye(n) I = eye(n,m)
使用 eye(n) 你将得到一个 nxn 矩阵,使用 eye(n,m) 你将得到一个 nxm 大小的矩阵。
示例
I = eye(4) I = eye(2, 3)
当你在 matlab 命令窗口中检查输出时,输出为:
I = Diagonal Matrix 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 I = Diagonal Matrix 1 0 0 0 1 0
函数名称:rand()
使用上述函数生成具有随机数的矩阵。
语法
rand(n) rand(sz1…szn)
你可以创建一个大小为 n 或 sz1xszn 的随机数矩阵。
示例
A = rand(4) A = rand(5,3)
当你在 matlab 命令窗口中执行它们时,输出为:
A = 0.8147 0.6324 0.9575 0.9572 0.9058 0.0975 0.9649 0.4854 0.1270 0.2785 0.1576 0.8003 0.9134 0.5469 0.9706 0.1419 A = 0.4218 0.0357 0.7431 0.9157 0.8491 0.3922 0.7922 0.9340 0.6555 0.9595 0.6787 0.1712 0.6557 0.7577 0.7060
函数名称:randn()
使用上述函数生成正态分布的随机数矩阵。
语法
randn(n) randn(sz1…szn)
你可以创建一个大小为 n 或 sz1xszn 的随机数矩阵。
示例
A = randn(4) A = randn(5,3)
当你在 matlab 命令窗口中执行它们时,输出为:
A = -1.1471 1.4384 -1.7115 0.3129 -1.0689 0.3252 -0.1022 -0.8649 -0.8095 -0.7549 -0.2414 -0.0301 -2.9443 1.3703 0.3192 -0.1649 A = 0.6277 -1.2141 0.3714 1.0933 -1.1135 -0.2256 1.1093 -0.0068 1.1174 -0.8637 1.5326 -1.0891 0.0774 -0.7697 0.0326
函数名称:size()
此方法返回数组或矩阵的大小。
语法
size(A)
这里 A 是一个矩阵,size() 函数将以行向量的形式返回 A 的维度。
示例
A = [1,2,3;4,5,6;7,8,9] size(A)
当你在 matlab 命令窗口中执行上述操作时,输出为:
A = 1 2 3 4 5 6 7 8 9 ans = 3 3
函数名称:reshape()
此函数将根据给定大小重新整形数组。
语法
B = reshape(A,sz)
这里 sz 是向量的尺寸,即 [3,2],矩阵 A 将被重新整形为给定的尺寸。
示例
A = 1:8 B = reshape(A,[4,2])
当你在 matlab 中检查输出时,输出为:
A = 1 2 3 4 5 6 7 8 B = 1 5 2 6 3 7 4 8
函数名称:transpose()
此函数将返回给定矩阵或向量的转置。
转置后,行和列将互换。
语法
B = transpose(A)
示例
A = magic(3) B = transpose(A)
上述代码的输出为:
A = 8 1 6 3 5 7 4 9 2 B = 8 3 4 1 5 9 6 7 2
函数名称:max()
这将给出数组的最大元素,如下所示。
如果给定的输入是一个行向量,则给出行向量中的最大元素。
如果给定的输入是一个矩阵,则给出具有最大元素的行向量。
语法
B = max(A)
这里 A 是一个数组、矩阵或行向量。
示例 1
A = [23, 84, 36, 1, 20] B = max(A)
当你在 matlab 命令窗口中执行时,输出为:
A = 23 84 36 1 20 B = 84
现在让我们使用一个矩阵并使用 max() 查找最大元素。
示例 2
A = [56, 23, 90; 101, 45, 22;78, 11,90] B = max(A)
当你在 matlab 命令窗口中执行上述操作时,输出为:
A = 56 23 90 101 45 22 78 11 90 B = 101 45 90
函数名称:min()
这将给出数组的最小元素,如下所示。
如果给定的输入是一个行向量,则给出行向量中的最小元素。
如果给定的输入是一个矩阵,则给出具有最小元素的行向量。
语法
B = min(A)
这里 A 是一个数组、矩阵或行向量。
示例 1
A = [23, 84, 36, 1, 20] B = min(A)
当你在 matlab 命令窗口中执行时,输出为:
A = 23 84 36 1 20 B = 1
现在让我们使用一个矩阵并使用 min() 查找最小元素。
示例 2
A = [56, 23, 90; 101, 45, 22;78, 11,90] B = min(A)
当你在 matlab 命令窗口中执行上述操作时,输出为:
A = 56 23 90 101 45 22 78 11 90 B = 56 11 22
函数名称:sum()
此方法将返回行向量或矩阵的元素总和。
如果是行向量,它将返回行向量中所有元素的总和。
如果是矩阵,它将对所有列求和并返回行向量。
语法
S = sum(A)
这里 A 是一个数组、矩阵或行向量。
示例 1
S = [2, 3, 80, 90, 12] sum(S)
执行后,输出为:
S = 2 3 80 90 12 ans = 187
示例 2
现在让我们使用如下所示的矩阵并计算其总和。
A = [1, 2,3;4,5,6;7,8,9] S = sum(A)
执行后,输出为:
A = 1 2 3 4 5 6 7 8 9 S = 12 15 18
函数名称:mean()
此函数将给出给定数组的平均值。
语法
M = mean(A)
如果给定的输入是一个行向量,则 mean(A) 将给出元素的平均值。
如果给定的输入是一个矩阵,则 mean(A) 将返回一个行向量,该向量包含每一列的平均值。
示例 1
A = [23, 90, 33, 78, 11, 56] M = mean(A)
执行后,输出将是:
A = 23 90 33 78 11 56 M = 48.5000
示例 2
A = [51, 34 , 33; 12, 90, 32; 8, 13, 67] M = mean(A)
在上例中,A 是一个 3x3 矩阵。现在,当你求 mean(A) 时,它会计算每一列的平均值并返回一个行向量。
在 Matlab 命令窗口中执行后的输出为:
A = 51 34 33 12 90 32 8 13 67 M = 23.6667 45.6667 44.0000
函数名称:diag()
此方法使用给定向量行元素在主对角线上创建一个对角矩阵。
语法
D = diag(v)
这里 v 是一个行向量。
示例
v = [5 2 -1 -2 -5] D = diag(v)
当你在 matlab 命令窗口中执行相同的操作时,输出为:
v = 5 2 -1 -2 -5 D = Diagonal Matrix 5 0 0 0 0 0 2 0 0 0 0 0 -1 0 0 0 0 0 -2 0 0 0 0 0 -5
函数名称:unique()
此方法将返回数组中唯一的值。
语法
C = unique(A) C = unique(A, setOrder)
你将得到一个排序后的数组 C,其中不会重复相同的值。
第二个语法需要你传递 setOrder,其值可以是:sorted 或 stable。默认情况下,setOrder 为 sorted。如果你希望最终输出不排序,可以将其指定为 'stable'。
示例 1
A = [10, 8, 2, 4,8, 3] C = unique(A)
当你在 matlab 命令窗口中执行相同的操作时,输出为:
A = 10 8 2 4 8 3 C = 2 3 4 8 10
你会看到值 8 在数组 A 中出现了两次。当你查看 unique(A) 的输出时,重复的值将被删除,最终数组将按排序形式显示。
示例 2
我们将使用上面用过的相同示例,并将 setOrder 设置为 stable。
A = [10, 8, 2, 4,8, 3] C = unique(A, 'stable')
执行相同的操作后,输出为:
A = 10 8 2 4 8 3 C = 10 8 2 4 3
示例 3
如果你给出一个包含重复值的矩阵,unique() 方法将返回包含唯一值的列向量,如下所示。
A = [1,2,4; 4,2,8; 8,1,5] C = unique(A)
在 Matlab 命令窗口中执行上述操作后的输出为:
A = 1 2 4 4 2 8 8 1 5 C = 1 2 4 5 8
结果 C 是一个单列向量,包含来自 A 的唯一值。
函数名称:sort()
此方法将对数组元素进行排序。
语法
B = sort(A) B = sort(A, direction)
语法 sort(A) 将按升序对数组元素进行排序。
第二个语法 sort(A, direction),这里 direction 的值可以是 **ascend** 和 **descend**。默认情况下为升序。
如果给定的输入 A 是一个向量,则 sort(A) 将对向量中的元素进行排序。
如果给定的输入 A 是一个矩阵,则 sort(A) 将对矩阵的每一列进行排序。
示例 1
A = [6 -1 -7 2 3 8 -10 11 2] B = sort(A)
当你在 matlab 命令窗口中执行相同的操作时,输出为:
A = 6 -1 -7 2 3 8 -10 11 2 B = -10 -7 -1 2 2 3 6 8 11
示例 2
在这个例子中,让我们取一个矩阵并对其使用 sort 函数。
A = [ -1, 7, 10; 3, -9, 2; 8, -2, -3] B = sort(A)
当你在 matlab 命令窗口中执行相同的操作时,输出为:
A = -1 7 10 3 -9 2 8 -2 -3 B = -1 -9 -3 3 -2 2 8 7 10
在上例中,让我们将 **direction** 设置为 **descend**。
A = [ -1, 7, 10; 3, -9, 2; 8, -2, -3] B = sort(A, 'descend')
当你在 matlab 命令窗口中执行相同的操作时,输出为:
A = -1 7 10 3 -9 2 8 -2 -3 B = 8 7 10 3 -2 2 -1 -9 -3