MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 有人研究最大方差展开算法的没 (https://www.labfans.com/bbs/showthread.php?t=13336)

yazh90 2011-05-07 15:27

有人研究最大方差展开算法的没
 
function [Y, K, eigVals, sdeScore] = sde(A, neighbors, targetd)

% Calculate constraints
N = length(A);

G = convertAffinityToDistance(A);

params.printlevel=1;
params.maxiter=100;

%distances = Bn;
[irow1, icol1] = find(neighbors==1);
%[m,n] = size(irow1)
numConstraints1 = length(irow1);
%numConstraints2 = length(icol1)
[COLOR="Red"] AA = sparse(numConstraints1, N*N);
bb = zeros(numConstraints1, 1);

for i=1:numConstraints1
AA(i, (irow1(i) - 1)*N + irow1(i)) = 1;
AA(i, (icol1(i) - 1)*N + icol1(i)) = 1;
AA(i, (irow1(i) - 1)*N + icol1(i)) = -1;
AA(i, (icol1(i) - 1)*N + irow1(i)) = -1;
bb(i) = G(irow1(i), icol1(i));
end
%[m,n] = size(AA)
% make all the constraints unique
[b, m, n] = unique(AA, 'rows');
A = AA(m, :);
b = bb(m);


% add constraint that points must be centered
%ones(1,N^2)
A=[ones(1,N^2);A];
%sum(A)
b=[0;b];
i=[1;i];
%length(i)

% new objective function
cc = eye(N);
%length(cc(:))
c=0-cc(:);[/COLOR]

flags.s=N;
flags.l=0;
OPTIONS.maxiter=params.maxiter;
OPTIONS.printlevel=params.printlevel;
[x d z info]=csdp(A,b,c,flags,OPTIONS);
csdpoutput=reshape((x(flags.l+1:flags.l+flags.s^2)), N, N);


K = csdpoutput;
为啥要进行红色那部分处理呢?可以加qq:274911560


所有时间均为北京时间。现在的时间是 14:23

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.