登录论坛

查看完整版本 : 对于一个用MATLAB写的迭代算法,求助!


wpgunzi
2009-05-05, 10:10
对于原矩阵X,使用迭代算法寻找最优矩阵分解W和H ,使得 X≈WH

定W1为W矩阵的转置,H1为矩阵H的转置;

H' <-- H'*(W1*X)/(W*W*H1)

这几句用MATLAB怎么写呀?

von2010
2009-05-23, 10:04
X=[];
W=[];
H=[];
W1=W';
H1=H';
n=0;
N=[];
while n<=N;%N为迭代次数
H1=H1*(W1*X)/(W*W*H1)
n=n+1;
end
H=H1'
W=W1'
上面的参数都与你的相同,N表示迭代次数,由你自己确定;
下面是一个训练例子:
X=rand(2);
W=rand(2);
H=rand(2);
W1=W';
H1=H';
N=9;
n=0;
while n<=N;%N为迭代次数
H1=H1*(W1*X)/(W*W*H1)
n=n+1
end
H=H1'
W=W1'