matlab中编辑一个函数求行列式的值,不能用det,要用代数余子式。急死了!非常感谢。

如题所述

function a=det_NMatrix(A)

N=length(A); %求方阵阶,A必须是方阵

if N==1
a(1)=A(1,1); %若为一阶,输出本身
else
for i=1:N
A1=A;
A1(1,:)=[];
A1(:,i)=[]; %求余子式
a(i)=(-1)^(i+1)*A(1,i)*det_NMatrix(A1);
end

end
a=sum(a); %得行列式值

嘿嘿 做的不是很好,不是很快啊
温馨提示:答案为网友推荐,仅供参考