[英]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.