⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sepline.m

📁 This toolbox contains Matlab code for several graph and mesh partitioning methods, including geometr
💻 M
字号:
function [bestline,linequality] = sepline(A,xy,ntries)% SEPLINE : Good separating line (or plane) for geometric partitioning.%% [bestline,linequality] = sepline(A,xy,ntries)% Generate cutting planes in the d-dimensional mesh space,% trying to find one that gives a good edge separator of the graph A.% "xy" is the input points, in the mesh space (not conformally mapped).% "ntries" optional (optional, default 2*d) is the number of planes to try.%% We generate the planes at random, weighted toward the first% singular vector of the matrix of coordinates.  The weighting % becomes weaker as the number of tries goes up.%% "bestline" is returned as a vector normal to the best line/plane.% "linequality" is the quality of its partition as measured by "sequality".%% See GEOPART.%% John Gilbert and Shanghua Teng, 1992-1993.% Copyright (c) 1990-1996 by Xerox Corporation.  All rights reserved.% HELP COPYRIGHT for complete copyright and licensing notice.%% Modified by Tim Davis, for Matlab 5.1.  July 6, 1998.[npoints,d] = size(xy);if nargin < 3   ntries = 2*d;end;[U,S,V] = svd(xy,0);if ntries == 1    % With only one try, use the singular vector.    vv = V(:,1)';else    % "exponent" determines the weighting.    % This formula is ad hoc, but seems pretty good.    exponent = 2*(d+1)/(ntries-1);    s = diag(S).^exponent;    W = (V * diag(s) * V');    vv = randn(ntries,d) * W;    rownorms = sqrt(sum((vv.*vv)'));    vv = diag(1./rownorms) * vv;end;quality = Inf * ones(ntries,1);for i = 1 : ntries    v = vv(i,:);    quality(i) = sepquality(v,A,xy);end;[linequality,i] = min(quality);bestline = vv(i,:)';

⌨️ 快捷键说明

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