#矩阵 #运算 #csv

matrix_operations

一个执行矩阵运算的库

6 个版本

0.1.5 2023年4月4日
0.1.4 2023年4月1日
0.1.3 2023年3月25日

#500 in 数学


用于 matrix_operations_cuda

MIT 协议

135KB
1K SLoC

矩阵运算

Crates.io Docs.rs

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);

功能

  • 创建矩阵
  • 转置矩阵
  • 乘法/加法/减法两个矩阵
  • 乘法/除法/加法/减法矩阵与一个标量
  • 将一个不同的值加到每个矩阵的行/列中
  • 对矩阵的每个元素应用一个函数(例如乘以一个标量或加一个常数)
  • 对两个矩阵的每个元素应用一个函数(例如两个矩阵的元素逐个相乘)
  • 对矩阵的每一行或每一列应用一个函数
  • 将矩阵作为切片/向量/二维向量获取
  • 在文件中加载/保存矩阵
  • 添加/删除行/列
  • 连接矩阵

无运行时依赖