我有一个 matlab 函数,它读取一个大矩阵并计算奇异值分解 SVD。然而,我需要在 linux 系统上运行它,而不需要在每个新系统上安装 matlab,所以我希望将它转换为 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