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

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

Added original make3d

File size: 1.2 KB
Line 
1function y = kron(X,Y)
2%KRON (overloaded)
3
4% Author Johan Löfberg
5% $Id: kron.m,v 1.1 2006/08/10 18:00:21 joloef Exp $   
6
7if isequal(X,1)
8    y = Y;
9    return;
10end
11
12if isequal(Y,1);
13    y = X;
14end
15
16if (isa(X,'sdpvar') & isa(Y,'sdpvar'))
17    y = [];
18    for i = 1:size(X,1)
19        this_row = [];
20        s.type = '()';
21        for j = 1:size(X,2);
22            s.subs = {i,j};
23            this_row = [this_row subsref(X,s)*Y];
24        end
25        y = [y;this_row];
26    end
27    return
28end
29
30if isa(X,'sdpvar')       
31        lmi_variables = getvariables(X);
32        nv = length(lmi_variables);
33        y  = X;
34        sparse_Y = sparse(Y);
35        temp = kron(getbasematrix(X,0),sparse_Y);
36        y.basis=temp(:);
37        for i = 1:nv
38                temp = kron(getbasematrix(X,lmi_variables(i)),sparse_Y);
39                y.basis(:,i+1) = temp(:);
40        end;   
41end
42
43if isa(Y,'sdpvar')
44  lmi_variables = getvariables(Y);
45  nv = length(lmi_variables);
46  y  = Y;
47  sparse_X = sparse(X);
48  temp = kron(sparse_X,getbasematrix(Y,0)); 
49  y.basis = temp(:);
50  for i = 1:nv
51                temp = kron(sparse_X,getbasematrix(Y,lmi_variables(i)));
52    y.basis(:,i+1) = temp(:);
53  end;
54end
55y.dim(1) = size(temp,1);
56y.dim(2) = size(temp,2);
57y = clean(y);
58% Reset info about conic terms
59y.conicinfo = [0 0];
Note: See TracBrowser for help on using the repository browser.