Armadillo等效于MATLAB操作

时间:2015-03-09 19:32:40

标签: c++ matlab linear-algebra armadillo

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:4)

如果你有两个相同维度的矩阵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生成满足所需标准的指标列表。 .elem然后创建A的这些元素的视图。最后.fill将这些元素设置为所需的值。