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

📄 minus.m

📁 求解线性矩阵不等式简单方便--与LMI工具箱相比
💻 M
字号:
function Z = minus(A,B)
%display           Overloaded

% Author Johan L鰂berg 
% $Id: minus.m,v 1.4 2007/02/07 09:11:27 joloef Exp $  

% Standard case A.cx + A.logdetP - (B.cx + B.logdetP)

if isa(A,'sdpvar') | isa(A,'double') 
    if prod(size(A))>1
        error('Only scalar terms can be added to a logdet term');
    end
    Acx = A;
    Alog = {};
    Again = [];
else
    Z = A;
    Acx  = A.cx;
    Alog = A.P;
    Again = A.gain;
end

if isa(B,'sdpvar') | isa(B,'double') 
    if prod(size(B))>1
        error('Only scalar terms can be added to a logdet term');
    end
    Bcx = B;
    Blog = {};
    Bgain = [];
else
    Z = B;
    Bcx  = B.cx;
    Blog = B.P;
    Bgain = B.gain;
end

if isempty(Acx)
    Acx = 0;
end
if isempty(Bcx)
    Bcx = 0;
end

if isequal(Acx-Bcx,0)
    Z.cx = [];
else
    Z.cx = Acx - Bcx;
end
    
Z.P = {Alog{:},Blog{:}};
Z.gain = [Again -Bgain];

% function Z = minus(cx,P)
% %display           Overloaded
% 
% % Author Johan L鰂berg 
% % $Id: minus.m,v 1.4 2007/02/07 09:11:27 joloef Exp $  
% 
% % Standard case c't-logdet(P)
% 
% if isa(P,'logdet') % sdpvr - logdet
% 
%     if prod(size(cx))>1
%         error('Only scalar terms can be added to a logdet term');
%     end
%     
%     if isa(cx,'logdet')
%         error('Logdet objects can only be added');
%     end
%     
%     Z = P;
%     if isempty(P.cx)
%         Z.cx = cx;
%     else
%         Z.cx = cx-P.cx;
%     end
%     Z.gain = -Z.gain;
% else % logdet - cx
%     temp = cx;
%     cx = P;
%     P = temp;
%     
%     Z = P;
%     if isempty(P.cx)
%         Z.cx = -cx;
%     else
%         Z.cx = P.cx-cx;
%     end
% end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -