簡體   English   中英

Armadillo/C++:如何將向量中的元素分配給立方體管?

[英]Armadillo/C++: How to assign elements from a vector to a cube tube?

假設我有一個 3x3x4 的立方體Q (即一個有 3 行、3 列和 4 個切片的立方體)和一個具有 4 個元素(即與 Q 的切片一樣多的元素)的列向量C 有沒有辦法讓我用 C 填充一管 Q?

我嘗試了以下方法:

# include <armadillo>

cube Q(3,3,4);
mat C(4,1, fill::zeros);
Q.tube(0, 0) = C;

但它不起作用(有運行時異常)。 有沒有辦法在不通過管和向量元素顯式循環的情況下實現目標?

已解決上面的代碼工作得很好。 事實證明,我第一次嘗試時可能做錯了其他事情(不知道是什么)。 感謝 darcamo 指出代碼實際上有效!

這很奇怪。 我試了一下,對我來說效果很好。 嘗試在賦值之前將C矩陣轉換為arma::vec

Q.tube(0, 0) = arma::conv_to<arma::vec>::from(C);

由於“管”是一維的,因此無論如何為其分配完整的 2D 矩陣是沒有意義的。 盡管在您的情況下它是一個列矩陣,但它應該可以工作。

我不需要轉換它,但值得嘗試,因為犰狳中的某些功能可能由於不同的標志、編譯器支持等而無法使用。

暫無
暫無

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

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