我正在使用C++中的Armadillo庫並且有一個矩陣A
。我如何獲取0/1
matrix-B
其中B_{ij} = 1 iff. A_{ij}>0
?如何在Armadillo矩陣中執行元素布爾操作
我真的無法承擔在我的程序中編寫for循環,因爲它在四層之內。
謝謝!
我正在使用C++中的Armadillo庫並且有一個矩陣A
。我如何獲取0/1
matrix-B
其中B_{ij} = 1 iff. A_{ij}>0
?如何在Armadillo矩陣中執行元素布爾操作
我真的無法承擔在我的程序中編寫for循環,因爲它在四層之內。
謝謝!
這是通過犰狳的relational operators完成:
mat A = randu<mat>(5,5) - 0.5;
umat B = (A > 0);
注意,B有型 「UMAT」 而不是 「墊」。前者包含無符號整數元素。
有沒有一種方法可以從'A'訪問元素,其中'B'是1?我已經習慣了Python中的NumPy,可以這樣做:'A [B] = -1'。但是,我無法在犰狳中找到它的等價物。 –
@AdeelAhmad - 請參閱Armadillo中的[.elem()](http://arma.sourceforge.net/docs.html#submat)函數 – mtall
犰狳庫最有可能實現這樣一個函數作爲一個循環(希望矢量化至少它的一部分)。如果你不能在Armadillo中找到這個函數,如果你自己用循環來實現它,我不認爲你會變得更糟。 – PureW