Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2011-04-26
帖子: 2
声望力: 0 ![]() |
![]()
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) 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( ![]() 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 |
![]() |
![]() |