📄 sgnt_vhp_1.m
字号:
function [Node] = sgnt_vhp_1(node)
[nr,nc]= size(node);
m = nc - 4;
for i=2:1:nr % -------------------------- 1 end
if node(i,m+2) > 0 & node(node(i,m+2),m+2) > 0 % -------- 2 end
parent_pt= node(i,m+2);
grandparent_pt= node(parent_pt,m+2);
wn = node(i,1:m);
wp = node(parent_pt,1:m);
wg = node(grandparent_pt,1:m);
dnp=sum((wn - wp).^2);
dng=sum((wn - wg).^2);
if dnp > dng % --------------------------- 3 end
% update np
temp = node(parent_pt,m+1);
node(parent_pt,m+1)= node(parent_pt,m+1)- node(i,m+1);
if node(parent_pt,m+1) <= 0 node(parent_pt,m+1) = 1; end
node(parent_pt,1:m)= (node(parent_pt,1:m).*temp - node(i,1:m)*node(i,m+1))/node(parent_pt,m+1);
% connect(n,ng)
if node(parent_pt,m+3) == i % node i is a first sibling (the most left sibling)
node(parent_pt,m+3) = node(i,m+4);
else % node i isn't a first sibling
jj = node(parent_pt,m+3);
while (jj > 0 & node(jj,m+4)~=i )
jj = node(jj,m+4);
end
if jj > 0
node(jj,m+4)= node(i,m+4);
end
end
node(i,m+2) = grandparent_pt; % 1
node(i,m+4) = node(grandparent_pt, m+3);
node(grandparent_pt, m+3) = i;
end % --------------------------- 3 end
end % -------- 2 end
end % -------------------------- 1 end
Node = node;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -