我是CPPUNIT的新手。我使用armadillo庫生成了一個類型爲cx_mat(complex double)的矩陣A,並且我有一個相同類型的參考(期望)矩陣B.請建議一種使用矩陣A和B進行捕獲的方法,以及一次性使用0.0001的三角形(公差),而無需遍歷整個矩陣。使用CPPUNIT斷言兩個犰狳cx_mat矩陣相等
如果以上是不可能的,並且唯一的選擇是在for循環中使用CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE方法,那麼請爲我提供正確的語法和使用相同的頭文件。
我是CPPUNIT的新手。我使用armadillo庫生成了一個類型爲cx_mat(complex double)的矩陣A,並且我有一個相同類型的參考(期望)矩陣B.請建議一種使用矩陣A和B進行捕獲的方法,以及一次性使用0.0001的三角形(公差),而無需遍歷整個矩陣。使用CPPUNIT斷言兩個犰狳cx_mat矩陣相等
如果以上是不可能的,並且唯一的選擇是在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;
}
您現在可以使用approx_equal函數。
以下是更緊湊的'arma :: accu(abs(X-Y))'。請參閱[accu()](http://arma.sourceforge.net/docs.html#accu) – mtall
的文檔'arma :: accu'也可以完成這項工作,但不是等價的代碼,它將所有元素。 –
我認爲'arma :: norm(X-Y,「inf」)