-2

我有一个 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
4

1 回答 1

0

你可以使用matlab coder,但是我建议你手动制作,因为有些功能是不可转换的,而且性能并不比手动制作好多少。

手动制作 svd:SVD

于 2013-10-03T10:19:12.657 回答