📄 monolistcoeff.m
字号:
function m = monolistcoeff(n,d,summax)
%MONOLISTCOEFF Internal function used in SOS programs
% Author Johan L鰂berg
% $Id: monolistcoeff.m,v 1.5 2005/02/20 17:04:28 johanl Exp $
if length(d)==1
d = repmat(full(d),1,full(n));
end
if nargin==2
summax = (sum(d));
end
if 0
dmax = sum(d);%max(full(d));%sum(d);
base = eye(n);
m = base;
for i = 1:dmax-1
temp=[];
for k = 1:n
temp = [temp;m+repmat(base(k,:),size(m,1),1)];
end
ii=find(~any(temp-repmat(d,size(temp,1),1)>0,2));
temp=temp(ii,:);
ii=find(~any(sum(temp,2)-summax>0,2));
temp=temp(ii,:);
m = [m;temp];
[ii,jj,kk]=uniquesafe(m,'rows');
m = m(jj,:);
end
% Add constant
m = [zeros(1,n);m];
else
m = (0:d(1))';
for i = 2:n
z = (0:d(i))';
m = [kron(m,ones(size(z,1),1)) kron(ones(size(m,1),1),z)];
[ii,jj,kk]=uniquesafe(m,'rows');
m = m(jj,:);
m = m(sum(m,2)<=summax,:);
end
end
m = full(m);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -