source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/extras/@ncvar/diag.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 685 bytes
Line 
1function X=diag(X,k)
2%DIAG (overloaded)
3
4% Author Johan Löfberg
5% $Id: diag.m,v 1.1 2006/08/10 18:00:19 joloef Exp $ 
6
7n = X.dim(1);
8m = X.dim(2);
9
10if nargin == 1
11    k = 0;
12end
13
14if min([n m])==1
15    Y = X;
16        diagX = diag(X.basis(:,1),k);
17        Y.basis = diagX(:);
18        for i = 1:length(X.lmi_variables)
19                diagX = diag(X.basis(:,i+1),k);
20                Y.basis(:,i+1) = diagX(:);
21    end
22        Y.lmi_variables = X.lmi_variables;
23        Y.dim(1) = size(diagX,1);
24        Y.dim(2) = size(diagX,2);
25    X=Y;
26else
27    index = diag(reshape(1:n*m,n,m),k);
28    X.basis = X.basis(index,:);
29        X.dim(1) = length(index);
30        X.dim(2) = 1;
31    X = clean(X);
32end
33% Reset info about conic terms
34if isa(X,'sdpvar')
35    X.conicinfo = [0 0];
36end
Note: See TracBrowser for help on using the repository browser.