6个版本 (破坏性)
0.5.1 | 2022年7月1日 |
---|---|
0.5.0 | 2022年6月30日 |
0.4.0 | 2022年6月29日 |
0.3.0 | 2022年6月28日 |
0.1.0 | 2022年6月27日 |
#758 in 数学
35KB
641 行
qmat
qmat是一个简单的二维矩阵库。
用法
创建新矩阵
创建新矩阵主要有三种方法。
use qmat::prelude::*;
// Creates the matrix 2x3
// [0, 1, 2]
// [3, 4, 5]
// The generics are the data type, the number of rows, the
// number of cols then the lenth of the data (rows * cols)
let mat: Matrix<i32, 2, 3, 6> = Matrix::new([0, 1, 2, 3, 4, 5]).unwrap();
// Or,
let mat = Matrix::<_, 2, 3, 6>::new([0, 1, 2, 3, 4, 5]).unwrap();
use qmat::prelude::*;
// Creates the same matrix using the analagous macro pattern.
// Automatically unwraps the errors.
let mat = matrix!(2, 3, [0, 1, 2, 3, 4, 5]);
use qmat::prelude::*;
let mat = matrix!([[0, 1, 2], [3, 4, 5]]);
还可以使用 Matrix::empty 和 Matrix::diag 创建矩阵。
获取值
使用 [usize; 2]
use qmat::prelude::*;
let mat = matrix!([[0, 1, 2], [3, 4, 5]]);
println!("{}", mat[[1, 1]]); // 4
使用位置结构体
use qmat::prelude::*;
let mat = matrix!([[0, 1, 2], [3, 4, 5]]);
let pos = Position(0, 2);
println!("{}", mat[pos]); // 2
矩阵运算
迭代器
待办事项
- 实现可变行和列迭代器
- 实现非(2, 2)形状矩阵的求逆
- 允许对任何可以转换为 [usize; 2] 的东西进行索引
- 优化
- 在 README.md 中添加矩阵运算和迭代器的示例
依赖
~0.5–1.1MB
~25K SLoC