资源简介
半非负矩阵分解算法(Semi-NMF)的源代码,算法特别简练。
代码片段和文件信息
function [Z H dnorm] = seminmf( X k varargin )
% Matrix sizes
% X: m x n
% Z: m x num_of_components
% H: num_of_components x num_of_components
% Process optional arguments
pnames = {‘z0‘ ‘h0‘ ‘bUpdateH‘ ‘maxiter‘ ‘TolFun‘ ‘bUpdateZ‘ ‘verbose‘ ‘save‘ ‘fast‘};
h0 = rand(k size(X 2));
dflts = {0 h0 1 500 1e-5 1 1 0 0};
[Z H bUpdateH max_iter tolfun bUpdateZ verbose doSave fastapprox] = ...
internal.stats.parseArgs(pnamesdfltsvarargin{:});
if fastapprox
H = LPinitSemiNMF(X k);
end
key = generate_checksum(X k);
if ispc
path = [‘\\fs-vol-hci2.doc.ic.ac.uk\hci2\projects\trigeorgis\nmf\seminmf_cache\‘ key ‘.mat‘];
else
path = [‘/vol/hci2/projects/trigeorgis/NMF/seminmf_cache/‘ key ‘.mat‘];
end
if doSave && exist(path ‘file‘) ~= 0
load(path);
return;
end
if length(Z) == 1
Z = X * pinv(H);
end
dnorm = norm(X - Z * H ‘fro‘);
for i = 1:max_iter
if bUpdateZ
try
Z = X * pinv(H);
catch
display(‘Error inverting‘);
end
end
A = Z‘ * X;
Ap = (abs(A)+A)./2;
An
- 上一篇:有关车辆路径问题VRP代码
- 下一篇:Deep Semi-NMF源代码
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论