哪位朋友有matlab非负矩阵分解的随机梯度下降算法程序
发布网友
发布时间:2022-04-25 19:43
我来回答
共1个回答
热心网友
时间:2022-05-04 17:37
clear all;
close all;
clc;
V=double(imread('lena.jpg'));
imshow(mat2gray(V));
[i u]=size(V); %计算V的规格
r=100; %设置分解矩阵的秩
W=rand(i,r); %初始化WH,为非负数
H=rand(r,u);
maviter=100; %最大迭代次数
for iter=1:maviter
W=W.*((V./(W*H))*H'); %注意这里的三个公式和文中的是对应的
W=W./(ones(i,1)*sum(W));
H=H.*(W'*(V./(W*H)));
end
img_V=W*H;
figure;
imshow(mat2gray(img_V));
热心网友
时间:2022-05-04 17:38
clear all;
close all;
clc;
V=double(imread('lena.jpg'));
imshow(mat2gray(V));
[i u]=size(V); %计算V的规格
r=100; %设置分解矩阵的秩
W=rand(i,r); %初始化WH,为非负数
H=rand(r,u);
maviter=100; %最大迭代次数
for iter=1:maviter
W=W.*((V./(W*H))*H'); %注意这里的三个公式和文中的是对应的
W=W./(ones(i,1)*sum(W));
H=H.*(W'*(V./(W*H)));
end
img_V=W*H;
figure;
imshow(mat2gray(img_V));