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数学

Download history 33/week @ 2024-07-06 97/week @ 2024-07-27

130 每月下载量

MIT 许可证

91KB
2K SLoC

mematrica 包 文档

mematrica_logo

一个易于使用的矩阵操作库。

特性

  • 矩阵-标量加法、减法、乘法
  • 矩阵-矩阵加法、减法、乘法
  • 矩阵索引
  • 矩阵行列式搜索
  • 求逆矩阵
  • 矩阵转置
  • 从文件读取矩阵
  • 将矩阵写入文件

使用方法

[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_rowsfrom 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