1

私は2次元のdouble型の行列を持っています。

ダブル ** 結果; (8334×34サイズ)

値は次のようなものです: 0.00211094, 0, 6.10098e-006.......

コード Mat m = Mat(ROW, COL, CV_64F, results) を使用します。

しかし、要素をチェックすると、値が一致していないことがわかりました.mの値は非常に奇妙で、5.325e-344のようなものです(小さすぎます!)

cout<(0,0) != 結果[0][0]

小さな行列をテストすると、答えは行列と一致します。

double a = 0.00211094;
double b = 6.10098e-006;
double c=0;
double aa[3][3] = {{a, b, c}, {0.4, 0.5, 0.6}, {0.7, 0.8, 0.9}};
Mat m = Mat(3, 3, CV_64F, aa);

cout<<m.at<double>(0,1)<<endl;

誰か教えてくれませんか?これは私の C++ メモリの問題ですか (結果マトリックスが大きすぎますか?)。

4

1 に答える 1

0

Mat に設定できるのは小さな行列だけです。

だから私は各要素をマットに設定しようとします。

for(i...){
for(j...){
    m.at<double>(i,j) =results[i][j];
}
}

そしてそれは動作します。

面白い!

于 2013-04-03T03:32:35.877 に答える