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

📄 diag.m

📁 optimization toolbox
💻 M
字号:
function X=diag(X,k)
%DIAG (overloaded)

% Author Johan L鰂berg 
% $Id: diag.m,v 1.1 2006/08/10 18:00:19 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -