📄 sgnt_vwp.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -