我正在使用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