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

📄 monolistcoeff.m

📁 国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题
💻 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 + -