📄 det.m
字号:
function d = det(X)
%DET (overloaded)
% Author Johan L鰂berg
% $Id: det.m,v 1.4 2006/07/26 20:17:57 joloef Exp $
n = X.dim(1);
m = X.dim(2);
if n~=m
error('Matrix must be square.');
else
switch n
case 1
d = X;
case 2
% Freakin overloading on multiplication doesn't work. Probalby
% stupid code...
Y1.type = '()';
Y2.type = '()';
Y3.type = '()';
Y4.type = '()';
Y1.subs = {1,1};
Y2.subs = {2,2};
Y3.subs = {1,2};
Y4.subs = {2,1};
d = subsref(X,Y1)*subsref(X,Y2)-subsref(X,Y3)*subsref(X,Y4);
otherwise
d = 0;
Y.type = '()';
for i = 1:n
Y.subs = {i,1};
xi = subsref(X,Y);
if ~isequal(xi,0)
Y.subs = {[1:1:i-1 i+1:1:n],2:n};
subX = subsref(X,Y);
d = d + (-1)^(i+1)*xi*det(subX);
end
end
end
end
% Reset info about conic terms
d.conicinfo = [0 0];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -