function z = baddet(A) % BADDET z = baddet(A) % an m! method for computing determinants of m x m matrices % don't try it if A is larger than 10 x 10 if length(size(A)) ~= 2 error("only works on matrices, not vectors or tensors"), end if diff(size(A)) ~= 0 error("only works on square matrices"), end if columns(A) == 1 z = A(1,1); % easy case return, end if columns(A) == 2 z = A(1,1) * A(2,2) - A(1,2) * A(2,1); % also easy case return, end z = 0; s = +1; for k = 1:columns(A) % minor = [A(2:end,1:k-1) A(2:end,k+1:end)]; recurse: z = z + s * A(1,k) * baddet([A(2:end,1:k-1) A(2:end,k+1:end)]); s = s * -1; end