zjwnnc.m

来自「最邻近的RBF算法,MATLAB实现,较为有价值的资料.」· M 代码 · 共 58 行

M
58
字号
function[c ,w ,nr ] = zjwnnc (p ,t ,r)
%ZJWNNC Design radial basis network using Nearest
%    Neighbor - Clusting Algorithm
%
%[C ,W ,NR] = ZJWNNC[ P ,T ,R]
%   P - RxQ matrix of Q input vectors.
%   T - SxQ matrix of Q target vectors.
%   R - Spread of radial basis functions ,default = 1. 0
%Returns :
%   C - RxM center matrix for neurons vectors.
%   W - SxM weight matrix for linear layer.
%   NR - the number of radial basis neurons used.
% p=[1 2 3; 4 5 6; 7 8 9];
% t=[1;2;3]';
% r=1;
% if nargin < 2 
%     error ('Not enough input arguments') ;
% end
% %   the default value of r is 1. 0
% if nargin==2 
%     r = 1.0 ;
% end
er=0;
nr=1;
[rr,q]=size(p);
[s,q]=size(t);
c=p(:,1);
a=t(:,1);
b=1;
w=a./b;
for i=2:q
    x=p(:,i);
    [rr,nr]=size(c);
y = c ( : ,1) ;
mind=distvector(x,y);
minc=1;
if nr>=2
    for j=2:nr
        y=c(:,j);
        d=distvector(x,y);
        if d<mind
            mind=d;
            minc=j;
        end
    end
end
if mind<=r
    a(:,minc)=a(:,minc)+t(:,i);
    b(:,minc)=b(:,minc)+1;
    w(:,minc)=a(:,minc)./b(:,minc);
else
    nr=nr+1;
    c(:,nr)=p(:,i);
    a(:,nr)=t(:,i);
    b(:,nr)=1;
    w(:,nr)=a(:,nr)./b(nr);
end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?