请考虑以下最小示例:
function CoderEigFail() %#codegen
A = [0 sqrt(2); sqrt(2) 0];
[B C] = eig(A)
Run Code Online (Sandbox Code Playgroud)
当我编译它codegen CoderEigFail.m并运行它时,我得到的不同矩阵B比我运行原始Matlab文件时得到的不同.特别是,对于mex文件,我得到B = [1 1; -1 1],而对于Matlab文件,我得到B = [-0.7071 0.7071; 0.7071 0.7071].我在MacOSx Mountain Lion上运行Matlab R2011a.
任何人都可以重现/解释这种行为吗?这是一个错误还是我错过了什么?
matlab ×1