2.4 KiB
2.4 KiB
1、其他可能替代的方案
nalgebra:支持动态数组+数组的计算+数组分解,求解
-
- matrix_construction.rs文件中,nalgebra支持多种矩阵创建方式:
- 直接指定元素值创建固定大小矩阵(Matrix2x3::new)
- 从行向量或列向量创建矩阵(from_rows, from_columns)
- 从切片创建矩阵(from_row_slice, from_column_slice)
- 使用函数生成矩阵元素(from_fn)
- 从迭代器创建矩阵(from_iterator)
- 创建动态大小矩阵(DMatrix)
- 创建对角矩阵(from_diagonal_element)
- 创建单位矩阵(identity)
-
- matrix.rs文件,nalgebra支持多种矩阵操作:
- 矩阵转置(transpose)
- 矩阵共轭转置(adjoint)
- 矩阵共轭(conjugate)
- 矩阵缩放(scale, unscale)
- 矩阵元素映射(map, map_with_location)
- 矩阵元素折叠(fold, fold_with)
- 矩阵元素交换(swap)
- 矩阵复制(copy_from, copy_from_slice)
- 矩阵迹(trace)
- 矩阵对称部分(symmetric_part)
- 矩阵厄米特部分(hermitian_part)
- 矩阵对角化(diagonal, map_diagonal)
- 矩阵齐次坐标转换(to_homogeneous, from_homogeneous)
- 矩阵叉积(cross, perp)
- 矩阵叉积矩阵(cross_matrix)
- 矩阵夹角(angle)
-
-
src/base/ops.rs文件实现了矩阵的以下主要操作:
-
索引操作:
- 实现了Index和IndexMut trait,支持通过usize或(usize, usize)索引访问矩阵元素
- 支持一维和二维索引,会自动进行边界检查
- 取反操作:
- 实现了Neg trait,支持对矩阵进行取反操作
- 提供了neg_mut方法用于原地取反
- 加法和减法操作:
- 通过componentwise_binop_impl宏实现了Add/Sub trait和AddAssign/SubAssign trait
- 支持矩阵与矩阵、矩阵与标量的加减运算
- 提供了add_to/sub_to等方法用于将结果存储到指定矩阵中
- 乘法操作:
- 实现了Mul trait和MulAssign trait
- 支持矩阵与矩阵、矩阵与标量的乘法运算
- 提供了tr_mul/ad_mul等方法用于转置/共轭转置后的乘法
- 实现了Kronecker积运算
- 其他操作:
- 实现了Sum和Product trait,支持对矩阵序列求和或求积
- 提供了mul_to等方法用于将结果存储到指定矩阵中
-