相关疑难解决方法(0)

为什么这个matlab和C++代码产生不同的结果?

+我正在尝试用C++实现matlab算法.

这是matlab代码:

p = 3;
K = [3 4 5; 4 5 6; 7 8 9];
e = ones(p,1);
K2 = K - (1/p)*K*ones(p) - 1/p + (1/p^2)*sum(K(:))
[V_K,D_K] = eig(K2);
Run Code Online (Sandbox Code Playgroud)

虽然这是使用OpenCV的类似C++代码:

float data[] = {3, 4, 5,
                4, 5, 6,
                7, 8, 9};
cv::Mat m(3, 3, CV_32F, data);
float p = K.rows;
cv::Mat CK = K - (1/p)*K*cv::Mat::ones(p,p,CV_32F) - 1/p + (1/std::pow(p,2))*cv::sum(K)[0];
cv::Mat eigenvalues(1,p,CK.type()), eigenvectors(p,p,CK.type());
cv::eigen(CK,eigenvalues,eigenvectors);
Run Code Online (Sandbox Code Playgroud)

matlab代码打印:

CK =

4.3333    5.3333    6.3333
4.3333    5.3333    6.3333
4.3333    5.3333    6.3333

0.5774 …
Run Code Online (Sandbox Code Playgroud)

c++ matlab opencv

1
推荐指数
1
解决办法
330
查看次数

标签 统计

c++ ×1

matlab ×1

opencv ×1