繁体   English   中英

使用CPPUNIT声明两个犰狳cx_mat矩阵的相等性

[英]Asserting equality of two armadillo cx_mat matrices using CPPUNIT

我是CPPUNIT的新手。 我已经使用犰狳库生成了类型为cx_mat(double double)的矩阵A,并且我有一个相同类型的reference(expected)矩阵B。 请提出一种使用矩阵A和B以及一次打出0.0001的增量(公差)的方法,而无需遍历整个矩阵。

如果上述方法不可行,并且唯一的选择是在for循环中使用CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE方法,请提供正确的语法和头文件以供使用。

可以用

bool Arma_test::Is_close(arma::cx_mat& X, arma::cx_mat& Y, double tol)
{
    // abs returns a mat type then max checks columns and returns a row_vec
    // max used again will return the biggest element in the row_vec
    bool close(false);
    if(arma::max(arma::max(arma::abs(X-Y))) < tol)
    {
        close = true;
    }
    return close;
}

参见Armadillo Docs

您现在可以使用roximate_equal函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM