function d=rDet(A) [a,b]=size(A); if a~=b error('Matrix must be square.'); end if a==1 d=A; return; end m=1; x=0; for n=1:b c=1; for k=1:a if k ~= m B(c,:)=[A(k,1:(n-1)), A(k,(n+1):b)]; c=c+1; end end if size(B)==[2 2] x=A(m,n)*((-1)^(m+n)*(B(1,1)*B(2, 2)-B(2, 1)*B(1, 2)))+x; else % error('Matrix must be 3x3 or smaller'); x=A(m,n)*((-1)^(m+n)*rDet(B))+x; end end d=x; return;