[英]Matrix multiplication by it's transpose returning zeros matrix?
我将一个矩阵乘以它的转置,得到一个零矩阵。
我正在乘其他矩阵,没有任何问题。 我已经使用cvMul
和cvMulTransposed
进行了cvMul
,并且始终获得零矩阵,该矩阵与预期结果不同。
码:
CvMat *test = cvCreateMat(3, 3, CV_64F);
CvMat *test2 = cvCreateMat(3, 3, CV_64F);
for(NSInteger row = 0; row < 3; row++) {
for (NSInteger column = 0; column < 3; column++) {
double value = 0.0f;
if (row == column) {
switch(row+column) {
case 0:
value = 16.815826;
break;
case 2:
value = 1.492630;
break;
}
}
cvSetReal2D(test, row, column, value);
cvSetReal2D(test2, row, column, value);
}
}
[self printCvMat:test];
[self printCvMat:test2];
CvMat *testResult = cvCreateMat(test->rows, test2->cols, CV_64F);
cvMul(test, test2, testResult, 0.0f);
[self printCvMat:testResult];
输出:
Printing Matrix:
16.815826 0.000000 0.000000
0.000000 1.492630 0.000000
0.000000 0.000000 0.000000
Printing Matrix:
16.815826 0.000000 0.000000
0.000000 1.492630 0.000000
0.000000 0.000000 0.000000
Printing Matrix:
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
它应该是:
282.772 0.000 0.000
0.000 2.228 0.000
0.000 0.000 0.000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.