diag.m
来自「matlab波形优化算法经常要用到的matlab toolbox工具箱:yalm」· M 代码 · 共 36 行
M
36 行
function X=diag(X,k)
%DIAG (overloaded)
% Author Johan L鰂berg
% $Id: diag.m,v 1.6 2006/07/26 20:17:57 joloef Exp $
n = X.dim(1);
m = X.dim(2);
if nargin == 1
k = 0;
end
if min([n m])==1
Y = X;
diagX = diag(X.basis(:,1),k);
Y.basis = diagX(:);
for i = 1:length(X.lmi_variables)
diagX = diag(X.basis(:,i+1),k);
Y.basis(:,i+1) = diagX(:);
end
Y.lmi_variables = X.lmi_variables;
Y.dim(1) = size(diagX,1);
Y.dim(2) = size(diagX,2);
X=Y;
else
index = diag(reshape(1:n*m,n,m),k);
X.basis = X.basis(index,:);
X.dim(1) = length(index);
X.dim(2) = 1;
X = clean(X);
end
% Reset info about conic terms
if isa(X,'sdpvar')
X.conicinfo = [0 0];
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?