function P = randkindep(m,n,k) global locm locn lock locm = m; locn = n; lock = k; xdim = m^n; LB = zeros(xdim,1)+1e-9; UB = 0*LB + 1; Aeq = ones(1,xdim); Beq = 1; global wvec wvec = randn(xdim,1); %U = ones(xdim,1); U = U/sum(U); U = unifP(m,n); P = fmincon(@myobj,U,[],[],Aeq,Beq,LB,UB,@nonlincon); return function y = myobj(x) global wvec P = makepos(x); y = P'*wvec; return function [C,Ceq] = nonlincon(x) global locm locn lock P = makepos(x); Ceq=0; [b,pH] = is_kindep(P,locm,locn,lock); C = pH-1; return