mldivide.m
来自「国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题」· M 代码 · 共 34 行
M
34 行
function y = mldivide(X,Y)
%MLDIVIDE (overloaded)
% Author Johan L鰂berg
% $Id: mldivide.m,v 1.3 2005/01/03 19:12:14 johanl Exp $
if (isa(X,'sdpvar'))
error('Division of matrix variables not possible.')
end
try
lmi_variables = getvariables(Y);
nv = length(lmi_variables);
y = Y;
n = Y.n;
m = Y.m;
if m==1
y.basis = X\Y.basis;
y.n = size(y.basis,1);
y.m = 1;
else % FIX : VECTORIZE THIS...
[L,U] = qr(X);
temp = U\(L\reshape(Y.basis(:,1),n,m));
y.basis = temp(:);
for i = 1:nv
temp = U\(L\reshape(Y.basis(:,i+1),n,m));
y.basis(:,i+1) = temp(:);
end;
y.n = size(temp,1);
y.m = size(temp,2);
end
catch
error(lasterr);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?