matlab常见函数
# size()
size(a)表示矩阵每一个维度的长度
在 python 中使用np.array(a).shape
注意:在 python 中,
np.size(A)表示 A 中所有数据个数
# length()
length(a)表示矩阵 a 的最大的长度,即 max(size(a))
在 python 中使用max(np.array(a).shape)
# ndims()
ndims(a)表示矩阵 a 的维数,即 length(size(a));如二维矩阵,三维矩阵等
在 python 中,使用len(np.array(a).shape)
# zeros()
生成全为 0 的矩阵:
- B=zeros(n):生成 n×n 全零阵。
- B=zeros(m,n):生成 m×n 全零阵。
- B=zeros([m n]):生成 m×n 全零阵。
- B=zeros(d1,d2,d3……):生成 d1×d2×d3×……全零阵或数组。
- B=zeros([d1 d2 d3……]):生成 d1×d2×d3×……全零阵或数组。
- B=zeros(size(A)):生成与矩阵 A 相同大小的全零阵。
在 python 中,有np.zeros(shape, dtype=float, order="C")
参数:
- shape:形状
- dtype: 数据类型,可选参数,默认 numpy.float64
- dtype 类型:
- t,位域,如 t4 代表 4 位
- b,布尔值,true or false
- i,整数,如 i8(64 位)
- u,无符号整数,u8(64 位)
- f,浮点数,f8(64 位)
- c,浮点负数,
- o,对象,
- s,a,字符串,s24
- u,unicode,u24
- order:可选参数,c 代表与 c 语言类似,行优先;F 代表列优先
# ones()
生成全为 1 的矩阵,用法与 zeros 类似
# 矩阵下标引用
参考:matlab 矩阵大全 (opens new window)
| matlab 表达式 | 函数功能 |
|---|---|
A(1) | 将二维矩阵 A 重组为一维数组,返回数组中第一个元素 |
A(:, j) | 返回二维矩阵 A 中第 j 列 列向量 |
A(i, :) | 返回二维矩阵 A 中第 i 行 行向量 |
A(:, j:k) | 返回二维矩阵 A 中第 j 列到第 k 列 列向量组成的子矩阵 |
A(i:k, :) | 返回二维矩阵 A 中第 i 行到第 k 行 行向量组成的子矩阵 |
A(i:k, j:m) | 返回二维矩阵 A 中第 i 行到第 k 行 行向量和第 j 列到第 m 列 列向量的交集组成的子矩阵 |
A(:) | 将二维矩阵 A 中得每列合并成一个列向量 |
A(j:k) | 返回一个行向量,其元素为 A(:)中的第 j 个元素到第 k 个元素 |
A([j1 j2 ...]) | 返回一个行向量,其元素为 A(:)中的第 j1,j2…个元素 |
A(:, [j1 j2 ...]) | 返回矩阵 A 的第 j1 列、第 j2 列等的列向量 |
A([i1 i2 ...], :) | 返回矩阵 A 的第 i1 行、第 i2 行等的行向量 |
A([i1 i2 ...], [j1 j2 ...]) | 返回矩阵 A 的第 j1 列、第 j2 列等和矩阵 A 的第 i1 行、第 i2 行等的元素 |
# 多维数组变一维
matlab: A(:)
python: arr.flatten()
# 向量范数和矩阵范数
matlab:
- n = norm(v) 返回向量 v 的欧几里德范数。此范数也称为 2-范数、向量模或欧几里德长度。
- n = norm(v,p) 返回广义向量 p 范数。
- n = norm(X) 返回矩阵 X 的 2-范数或最大奇异值,该值近似于 max(svd(X))。
- n = norm(X,p) 返回矩阵 X 的 p-范数,其中 p 为 1、2 或 Inf:
- 如果 p = 1,则 n 是矩阵的最大绝对列之和。
- 如果 p = 2,则 n 近似于 max(svd(X))。此值等效于 norm(X)。
- 如果 p = Inf,则 n 是矩阵的最大绝对行之和。
- n = norm(X,"fro") 返回矩阵或数组 X 的 Frobenius 范数。
python: x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)
- x: 表示矩阵(也可以是一维)
- ord:范数类型
- ord = 1
- 向量的范数表示一范数
- 矩阵的范数表示列和的最大值
- ord = 2
- 向量的范数表示二范数(默认)
- 矩阵的范数表示|λE-ATA|=0,求特征值,然后求最大特征值得算术平方根
- ord = np.inf
- 向量的范数表示无穷范数
- 矩阵的范数表示行和的最大值
- ord = 1
- axis:处理类型
- axis=1 表示按行向量处理,求多个行向量的范数
- axis=0 表示按列向量处理,求多个列向量的范数
- axis=None 表示矩阵范数。
- keepding:是否保持矩阵的二维特性
- True 表示保持矩阵的二维特性,False 相反
上次更新: 2023/12/16, 09:22:46