define.m
来自「国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题」· M 代码 · 共 48 行
M
48 行
function define(varargin)
%DEFINE
%
% definestring = 'sdpvar ';
%
% for i=1:nargin
% X = varargin{i};
% xname = inputname(i);
% [n,m]=size(X);
% for ii = 1:n
% for jj=1:m
% x=X(ii,jj);
% v=getvariables(x);
% if min(n,m)>1
% dostring = [xname num2str(ii) num2str(jj) '=recover(' num2str(v) ');'];
% else
% dostring = [xname num2str(max(ii,jj)) '=recover(' num2str(v) ');'];
% end
% evalin('caller',dostring);
% end
% end
% end
for i=1:nargin
X = varargin{i};
xname = inputname(i);
[n,m]=size(X);
namesout = [];
variablesin = [];
for ii = 1:n
for jj=1:m
x=X(ii,jj);
v=getvariables(x);
if min(n,m)>1
namesout = [namesout xname num2str(ii) num2str(jj) ','];
variablesin = [variablesin num2str(v) ' '];
% dostring = [xname num2str(ii) num2str(jj) '=recover(' num2str(v) ');'];
else
variablesin = [variablesin num2str(v) ' '];
namesout = [namesout xname num2str(max(ii,jj)) ','];
% dostring = [xname num2str(max(ii,jj)) '=recover(' num2str(v) ');'];
end
% evalin('caller',dostring);
end
end
dostring = ['[' namesout(1:end-1) '] = recover([ ' variablesin ']);'];
evalin('caller',dostring);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?