我有一个matlab函数,它读取一个大矩阵并计算奇异值分解SVD。然而,我需要在Linux系统上运行它而不需要在每个新系统上安装matlab,所以id喜欢将它转换为c源代码。代码非常简单:
function singular(m)
load c:\som\matlab.txt
[U,S,V]=svd(matlab);
m = str2num(m);
U1=U(:,1:floor(sqrt(m)));
V1=V';
Vt=V1(1:floor(sqrt(m)),:);
S1=S(1:floor(sqrt(m)),1:floor(sqrt(m)));
matlab1=U1*S1*Vt;
matlab2=abs(matlab1);
save c:\som\matlab1.txt matlab1 -ascii
save c:\som\matlab2.txt matlab2 -ascii