7 个版本
使用旧的 Rust 2015
0.2.2 | 2023年7月9日 |
---|---|
0.2.1 | 2023年7月4日 |
0.1.8 | 2023年7月1日 |
0.1.6 | 2023年6月30日 |
#283 在 数学
130 每月下载量
91KB
2K SLoC
mematrica
一个易于使用的矩阵操作库。
特性
- 矩阵-标量加法、减法、乘法
- 矩阵-矩阵加法、减法、乘法
- 矩阵索引
- 矩阵行列式搜索
- 求逆矩阵
- 矩阵转置
- 从文件读取矩阵
- 将矩阵写入文件
使用方法
[dependencies]
mematrica = "0.2.2"
示例
extern crate mematrica;
use mematrica::*;
fn main() {
let mut matrix_2x2 = Matrix2::new(1, 2, 3, 4); // creates a matrix 2x2 with elements 1, 2, 3, 4
let double = matrix_2x2 * 2; // multiplies matrix on 2
assert_eq!(vec![vec![2, 4], vec![6, 8]], double.get_elements());
}
使用 from_vec()
extern crate mematrica;
use mematrica::*;
fn main() {
let matrix_2x2 = Matrix2::from_vec_as_rows(vec![1, 2]);
assert_eq!(vec![vec![1, 2], vec![1, 2]], matrix_2x2.get_elements());
}
to_file() & from_file() 示例
extern crate mematrica;
use mematrica::*;
fn main() {
let m = Matrix2::new(1, 2, 3, 4);
m.to_file(String::from("./src/bin/file.txt"), ',');
let q = Matrix2::<i32>::from_file(String::from("./src/bin/file.txt"), ',');
assert_eq!(vec![vec![1, 2], vec![3, 4]], q.get_elements());
}
其他创建矩阵的方法
zero
: 创建元素为 0 的矩阵one
: 创建元素为 1 的矩阵identity
: 创建单位矩阵from_file
: 从文件读取矩阵from_element
: 从元素创建矩阵from_vec
: 从向量作为行或列创建矩阵 (from_vec_as_rows
或from vec_as_columns
)
通过索引获取元素
extern crate mematrica;
use mematrica::*;
fn main() {
let mut matrix_2x2 = Matrix2::new(1, 2, 3, 4);
assert_eq!(1, matrix_2x2[(0, 0)]);
// change element
matrix[(0, 0)] = 2;
assert_eq!(2, matrix_2x2[(0, 0)]);
}
基础操作
extern crate mematrica;
use mematrica::*;
fn main() {
let m1 = CMatrix::from_element(2, 2, 4);
let m2 = Matrix2::from_element(2);
assert_eq!(vec![vec![16, 16], vec![16, 16]], (m1*m2).get_elements()); //also can use '+' '-'
}
更多示例可以在 示例文件夹 中找到
依赖项
~465KB