source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/extras/@ncvar/mrdivide.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 = mrdivide(X,Y)
2%MRDIVIDE (overloaded)
3
4% Author Johan Löfberg
5% $Id: mrdivide.m,v 1.1 2006/08/10 18:00:21 joloef Exp $   
6
7if (isa(Y,'sdpvar'))
8    if Y.dim(1)*Y.dim(2) == 1
9        y = X*Y^-1;
10        return
11    else
12        error('Division of matrix variables not possible (maybe you meant ./).')
13    end
14end
15
16try
17   
18    % Quick exit on scalar division
19    if X.dim(1)*X.dim(2) == 1 & length(Y)==1
20        if isinf(Y)
21            y = 0;
22        else
23            y = X;
24            y.basis = y.basis/Y;
25        end
26        return
27    end
28
29    lmi_variables = getvariables(X);
30    nv = length(lmi_variables);
31    y  = X;
32    n = X.dim(1);
33    m = X.dim(2);   
34    if (n==1) & (m==1) % SPECIAL CODE FOR FREAKY MATLAB BUG       
35        y.basis = sparse(reshape(reshape(full(X.basis(:,1)),n,m)/Y,n*m,1));   
36        for i = 1:nv
37            temp = reshape(full(X.basis(:,i+1)),n,m)/Y;
38            y.basis(:,i+1) = sparse(temp(:));   
39        end;
40    else
41        y.basis = reshape(reshape(X.basis(:,1),n,m)/Y,n*m,1);   
42        for i = 1:nv
43            temp = reshape(X.basis(:,i+1),n,m)/Y;
44            y.basis(:,i+1) = temp(:);   
45        end;   
46    end
47   
48    y.dim(1) = size(temp,1);
49    y.dim(2) = size(temp,2);
50catch
51    error(lasterr);
52end
53
Note: See TracBrowser for help on using the repository browser.