簡體   English   中英

Rust 將 vec 重塑為 vec<vec>

[英]Rust reshape a vec into vec<vec>

let a: Vec<f32>;
let mut new: Vec<Vec<f32>>;

假設a的大小為n * n 如何將其轉換為 2D 矢量new 顯然,簡單地迭代向量並手動完成是非常幼稚的。 有什么方法可以快速高效地重塑?

不。如果您來自 numpy 或類似工具,numpy 將所有數組存儲為一維並執行算術以使其看起來是多維的,因此高性能地重塑數組確實只涉及在某處更改索引。 但是 Rust 中的Vec是一維結構,而Vec<Vec<...>>是具有完全不同結構的嵌套數據類型,因此您實際上必須將所有元素復制到新向量中。 在這種情況下,迭代元素是正確的方法。

我贊賞您為找到更好的方法所做的努力,但在這種情況下,我相信答案就是自己動手。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM