Rust ndarray:按列顺序遍历数组

bogh5gae  于 2023-04-12  发布在  其他
关注(0)|答案(1)|浏览(112)

我有一个2D数组,形状为(2,N),来自ndarray crate,包含i16个音频样本(立体声(2声道)音频剪辑)。将这些值写入文件的标准方式是按列优先顺序,因此每个偶数条目属于通道1 /行0,奇数元素对应于通道2 /行2。
我相信有一种方法可以做到这一点,而不使用column-major排序,但似乎这不应该是这种情况/必要的,并且可能有一种惯用的方法来使用内置的crate功能来做到这一点。
crate文档明确指出iteriter_mut使用行优先排序,但没有更改它的选项。
有没有一种方法可以在ndarray crate中实现这一点,或者我需要做自己的列顺序迭代?

dgiusagp

dgiusagp1#

我不确定我完全理解你想做什么,但我认为你要么这样做

for row in data.columns() {
    for val in row.iter() {
        println!("{}", val);
    }
}

或者反过来说

for column in data.rows() {
    for val in column.iter() {
        println!("{}", val);
    }
}

其中data是您的数组。
这里是一个链接到rustexplorer。
P.S.:我认为如果你提供了示例代码和预期的输出,它会对这个问题有所帮助。

相关问题