嗨,我是犰狳的新手。我正在寻找在MATLAB中执行的以下操作的Armadillo等效项:
B(B_t>=0) = 1;
B(B_t<0) = -1;
这里B和B_t是具有相同尺寸的两个矩阵。 我可以在这里使用犰狳signum函数(符号)但是我需要将所有零元素设置为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将这些元素设置为所需的值。