#matrix #cross-platform #array #algorithm

diagonal

从矩阵中提取各种方向的对角线

1 个不稳定版本

0.1.0 2024年3月4日

#2390算法

MIT 许可证

19KB
303

对角线操作

此 Rust 模块提供对矩阵中的对角线进行操作的函数。它包括从矩阵中提取正斜率和正负斜率的对角线,以及直行和直列的函数。

正斜率对角线(从左下角到右上角)

diagonal_pos_pos 函数从矩阵的左下角(x:最大值,y:0)开始提取具有正斜率的对角线。

示例

use diagonal::diagonal_pos_pos;

let matrix = vec![
    vec![1, 2, 3],
    vec![4, 5, 6],
    vec![7, 8, 9],
];

let result = diagonal_pos_pos(&matrix);
assert_eq!(result, vec![
    vec![&7],
    vec![&4, &8],
    vec![&1, &5, &9],
    vec![&2, &6],
    vec![&3],
]);

正负斜率对角线(从左上角到右下角和从左下角到右上角)

diagonal_pos_neg 函数从矩阵的左上角(x & y:0)开始提取具有正负斜率的对角线。

示例

use diagonal::diagonal_pos_neg;

let matrix = vec![
    vec![1, 2, 3],
    vec![4, 5, 6],
    vec![7, 8, 9],
];

let result = diagonal_pos_neg(&matrix);
assert_eq!(result, vec![
    vec![&1],
    vec![&2, &4],
    vec![&3, &5, &7],
    vec![&6, &8],
    vec![&9],
]);

直行和直列

straight_xstraight_y 函数分别按行主序和列主序从矩阵中提取元素。

示例

use diagonal::{straight_x, straight_y};

let matrix = vec![
    vec![1, 2, 3],
    vec![4, 5, 6],
    vec![7, 8, 9],
];

let result_x = straight_x(&matrix);
assert_eq!(result_x, vec![
    vec![&1, &2, &3],
    vec![&4, &5, &6],
    vec![&7, &8, &9],
]);

let result_y = straight_y(&matrix);
assert_eq!(result_y, vec![
    vec![&1, &4, &7],
    vec![&2, &5, &8],
    vec![&3, &6, &9],
]);

提供的函数使提取和操作矩阵对角线变得方便,从而更容易对矩阵元素执行各种操作。

入门指南

要使用此模块,请将 diagonal crate 添加到您的 Cargo.toml 文件中

[dependencies]
diagonal = "0.1.0"

现在,您可以在 Rust 中导入必要的函数并开始使用矩阵对角线了!

无运行时依赖