6 个版本
0.1.5 | 2023年4月4日 |
---|---|
0.1.4 | 2023年4月1日 |
0.1.3 | 2023年3月25日 |
#500 in 数学
135KB
1K SLoC
矩阵运算
Matrix_Operations是一个Rustcrate,用于执行各种矩阵运算。它提供了一套执行常见矩阵运算的函数。
安装
将以下内容添加到您的Cargo.toml文件中
[dependencies]
matrix_operations = "0.1.5"
用法
此crate提供了一组广泛的矩阵操作。以下是一些常见操作的示例
use matrix_operations::matrix;
use matrix_operations::operations::transpose_matrix;
let matrix1 = matrix![[1, 2, 3],
[4, 5, 6]];
let matrix2 = matrix![[7, 8, 9],
[10, 11, 12]];
let mut matrix3 = matrix1.clone() + matrix2.clone() * 2;
assert_eq!(matrix3, matrix![[15, 18, 21], [24, 27, 30]]);
matrix3 -= 1;
assert_eq!(matrix3, matrix![[14, 17, 20], [23, 26, 29]]);
matrix3 /= 2;
assert_eq!(matrix3, matrix![[7, 8, 10], [11, 13, 14]]);
matrix3 -= matrix1;
assert_eq!(matrix3, matrix![[6, 6, 7], [7, 8, 8]]);
matrix3 = transpose_matrix(&matrix3);
assert_eq!(matrix3, matrix![[6, 7], [6, 8], [7, 8]]);
matrix3 *= matrix2;
assert_eq!(matrix3, matrix![[112, 125, 138], [122, 136, 150], [129, 144, 159]]);
此crate还提供将矩阵加载和保存到文件的功能
use matrix_operations::csv::{load_matrix_from_csv, write_matrix_to_csv};
use matrix_operations::matrix;
let matrix1 = matrix![[1, 2, 3],
[4, 5, 6]];
write_matrix_to_csv(&matrix1, "resources/matrix.csv", ",").unwrap();
let matrix2 = load_matrix_from_csv("resources/matrix.csv", ",").unwrap();
assert_eq!(matrix1, matrix2);
功能
- 创建矩阵
- 转置矩阵
- 乘法/加法/减法两个矩阵
- 乘法/除法/加法/减法矩阵与一个标量
- 将一个不同的值加到每个矩阵的行/列中
- 对矩阵的每个元素应用一个函数(例如乘以一个标量或加一个常数)
- 对两个矩阵的每个元素应用一个函数(例如两个矩阵的元素逐个相乘)
- 对矩阵的每一行或每一列应用一个函数
- 将矩阵作为切片/向量/二维向量获取
- 在文件中加载/保存矩阵
- 添加/删除行/列
- 连接矩阵