Crates.io | matrix_operations |
lib.rs | matrix_operations |
version | 0.1.5 |
source | src |
created_at | 2023-03-25 14:09:30.242275 |
updated_at | 2023-04-04 12:53:11.096419 |
description | A library to perform matrix operations |
homepage | |
repository | https://github.com/arnaud111/matrix_operations |
max_upload_size | |
id | 820284 |
size | 137,154 |
Matrix_Operations is a Rust crate for performing various matrix operations. It provides a set of functions for performing common matrix operations.
Add the following to your Cargo.toml file:
[dependencies]
matrix_operations = "0.1.5"
This crate provides a wide range of operations that can be performed on matrices. Here are some examples of common operations:
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]]);
This crate also provides functionality to load and save matrices to a file:
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);