sgnt_vwp.m
来自「用matlab编写的基于自生成神经网络(self-generated neura」· M 代码 · 共 47 行
M
47 行
function node= sgnt_vwp(node,m)
[nr,nc]= size(node);
for i=2:1:nr
parent_pt= node(i,m+2);
if parent_pt > 0
grandparent_pt= node(parent_pt,m+2);
if grandparent_pt > 0
for k=1:1:m
wn(k)= node(i,k);
wp(k)= node(parent_pt,k);
wg(k)= node(grandparent_pt,k);
end
dnp= sum((wn-wp).^2);
dng= sum((wn-wg).^2);
if dnp > dng
% update np
for k=1:1:m
node(parent_pt,k)= (node(parent_pt,k)*node(parent_pt,m+1)-...
node(i,k)*node(i,m+1))/(node(parent_pt,m+1)- node(i,m+1));
end
node(parent_pt,m+1)= node(parent_pt,m+1)- node(i,m+1);
% connect(n,ng)
node(i,m+2)= grandparent_pt; % 1
pointer=node(grandparent_pt,m+3);
while (pointer > 0)
s_pointer= node(pointer,m+4);
if s_pointer ==0 node(pointer,m+4)= i; break; end % 2
pointer= s_pointer;
end
pointer= node(parent_pt,m+3);
if pointer== i
node(parent_pt,m+3)= node(i,m+4);
else
while (pointer > 0)
s_pointer= node(pointer,m+4);
if s_pointer== i node(pointer,m+4)= node(i,m+4); break; end % 3
pointer= s_pointer;
end
end
node(i,m+4)= 0;
end
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?