Home > vbmeg > functions > brain > vb_next_distance.m

vb_next_distance

PURPOSE ^

Search next-point index and distance

SYNOPSIS ^

function [xxD, xxF, xxT, xxN] = vb_next_distance(F,V)

DESCRIPTION ^

 Search next-point index and distance
   [xxD, xxF, xxT, xxN] = vb_next_distance(F,V)

 xxD{n} : 頂点 n と 隣接近傍点 との 距離
 xxF{n} : 頂点 n の 隣接近傍頂点番号
 xxT{n} : 頂点 n の 隣接3角面番号
 xxN(n) : 頂点 n の 隣接近傍頂点数


 M. Sato  2003-3-15
 M. Sato  2017-3-10

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function    [xxD, xxF, xxT, xxN] = vb_next_distance(F,V)
0002 % Search next-point index and distance
0003 %   [xxD, xxF, xxT, xxN] = vb_next_distance(F,V)
0004 %
0005 % xxD{n} : 頂点 n と 隣接近傍点 との 距離
0006 % xxF{n} : 頂点 n の 隣接近傍頂点番号
0007 % xxT{n} : 頂点 n の 隣接3角面番号
0008 % xxN(n) : 頂点 n の 隣接近傍頂点数
0009 %
0010 %
0011 % M. Sato  2003-3-15
0012 % M. Sato  2017-3-10
0013 %
0014 % Copyright (C) 2011, ATR All Rights Reserved.
0015 % License : New BSD License(see VBMEG_LICENSE.txt)
0016 
0017 Npoint = size(V,1);          % number of dipoles
0018 Npatch = size(F,1);          % number of patch
0019 xxD = cell(Npoint,1); 
0020 xxF = cell(Npoint,1); 
0021 xxT = cell(Npoint,1); 
0022 xxN = zeros(Npoint,1);
0023 
0024 % 3角面に関するループ
0025 for j=1:Npatch,
0026     % 3角面の頂点インデックス
0027     k = F(j,:); 
0028     
0029     % 各頂点の近傍点リストに他の頂点を加える
0030     xxF{k(1)} = [ xxF{k(1)} ; k(2) ; k(3)];
0031     xxF{k(2)} = [ xxF{k(2)} ; k(3) ; k(1)];
0032     xxF{k(3)} = [ xxF{k(3)} ; k(1) ; k(2)];
0033     
0034     % 各頂点の3角面リストに3角面番号を加える
0035     xxT{k(1)} = [ xxT{k(1)} ; j ];
0036     xxT{k(2)} = [ xxT{k(2)} ; j ];
0037     xxT{k(3)} = [ xxT{k(3)} ; j ];
0038 end;
0039 
0040 for i=1:Npoint,
0041     % 近傍点リストの重複を除く
0042     nextix = unique(xxF{i});
0043     xxF{i} = nextix;
0044     xxN(i) = length(nextix);
0045     
0046     Va = V(i,:);
0047     Vb = V(nextix,:);
0048     
0049     % Distance from vertex i to next points xxF{i}
0050     %dd = (Va(1)-Vb(:,1)).^2 +(Va(2)-Vb(:,2)).^2 +(Va(3)-Vb(:,3)).^2 ;
0051     dd = sum(vb_repadd(Vb, -Va).^2, 2);
0052     xxD{i} = sqrt(dd);
0053 end

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005