如何从Matlab和C代码(matlab编译器/代码生成器)使用eig函数获得相同的结果?

时间:2019-06-01 08:30:35

标签: matlab code-generation matlab-compiler codegen

我用matlab和C代码(matlab编译器,codegen)得到了不同的结果。最终,我发现功能eig()的不同结果带来了不同。

这是我的matlab代码:

function [yrecon] = SSA(x1, prevBPM)
L = 215;
N = length(x1(1,:)); 
K = N-L+1;
X = zeros(L,K);
I = 9; 
tmp=cell(I,L,K);
%X_group = cell(I,L,K);
X_group = coder.nullcopy(tmp);
x = x1(2,:);
for i=1:L
    X(i,1:K) = x(1,i:i+K-1); 
end
S = X*X' ;
[U,autoval] = eig(S);
yrecon=real(U);
end

如何在Matlab和Matlab从Codegen生成的C代码中获得完全相同的Uautoval

BTW:在c代码中,Uautoval很复杂,但在matlab中都是真实的。如何解决?

0 个答案:

没有答案