[英]Eigen: Operating on Vectors of Different Types
我有很多表情
auto result = vec3f.cwiseProduct( vec3ui );
其中vec3f
來自Eigen::Matrix< float, 3, 1 >
而vec3ui
來自Eigen::Matrix< unsigned int, 3, 1 >
。 這些似乎是不允許的,至少編譯器對此有所抱怨。
因此我需要像上面這樣寫
Eigen::Matrix< float, 3, 1 > result( vec3f.x() * vec3ui.x(), /*...*/ );
這會導致代碼很長,可讀性較差。
是否可以使用特征3對上述表達式進行矢量化處理?
您需要將第二個矩陣轉換為第一個矩陣的形式,如下所示:
Eigen::Matrix< float, 3, 1 > mf;
Eigen::Matrix< unsigned int, 3, 1 > mi;
mf.dot(mi.cast<float>());
同樣,Eigen可以隨時使用矢量類型,例如Eigen::Vector3f
表示浮點數, Eigen::Vector3i
表示整數。 (但對於unsigned int
沒有)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.