作业帮 > 综合 > 作业

为什么在opencv中SVD分解之后,W为N*1的矩阵,而MATLAB中W为N*N?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/08 12:44:39
为什么在opencv中SVD分解之后,W为N*1的矩阵,而MATLAB中W为N*N?
最近在利用opencv进行SVD分解的计算,算出来之后发现W就是上述情况,而且opencv计算的精确度也不如MATLAB好,有知道这是什么原因的吗?
为什么在opencv中SVD分解之后,W为N*1的矩阵,而MATLAB中W为N*N?
精度问题,oepnCV的数学运算库不够专业,所以如果论误差一定会更大,这很正常.
矩阵尺寸问题:你说的W是指奇异值吧?matlab是把它排成一个对角阵的,而opencv里排成一个vector,所以看起来尺寸有差别.

再问: 那需要精度的话,是不是可以利用vs与MATLAB混合编程,调用MATLAB进行计算?
再答: 最好别。。。C调matlab极其麻烦而且效率不高。 请先冷静下来,想想是不是真的需要那么高精度。 如果确实要,请用blas库,这是matlab底层的运算库,用C写的。
再问: 好的,谢谢忠告!