如何用matlab编写一个函数计算行列式的值,但是不用det?

如题所述

不用det函数,如何用matlab编写一个函数计算行列式的值?编写该程序,我们可以利用代数余子式方法求取矩阵行列式值。通过递归的方法进行计算。其实现代码:
function d=det1(A)
[n,m]=size(A);
if n==m
if n==1; d=A;
elseif n==2, d=A(1,1)*A(2,2)-A(1,2)*A(2,1);
else, d=0; A1=A; A1(1,:)=[];
for i=1:n
A2=A1; A2(:,i)=[]; d=d+A(1,i)*(-1)^(1+i)*det1(A2);
end, end
else, error('A rectangular matrix cannot be handled.'); end
使用方法:

A=[16,2,3,13;5,11,10,8;9,7,6,12;4,,14,15,1];
det1(A)
温馨提示:答案为网友推荐,仅供参考
相似回答