Armadillo 等效于 MATLAB 操作

Armadillo equivalent for MATLAB operations

嗨,我是犰狳的新手。我正在寻找在 MATLAB 中执行的以下操作的犰狳等效项:

B(B_t>=0) = 1;
B(B_t<0) = -1;

这里B和B_t是两个维度相同的矩阵。 我可以在这里使用犰狳符号函数(符号),但我需要将所有零元素设置为一。我相信这是一个简单的问题。感谢您的帮助。

此外,谁能告诉我如何将犰狳矩阵中的非连续索引设置为特定值?

谢谢。

如果您有两个维度相同的矩阵 A 和 B,您可以将 A 的所有元素(其中 B 的对应元素 > 0)设置为具有

的值
using namespace arma;

// A and B are matrices of the same shape.
mat A = randu<mat>(5,5) - 0.5;
mat B = randu<mat>(5,5) - 0.5;

// Change elements of A where B > 0 to 10.0
A.elem( find(B > 0) ).fill(10.0);

我们使用 find to produce a list of indicies that satisfy the desired criteria. .elem to then create a view of those elements of A. And finally .fill 将这些元素设置为所需值的地方。