%用for循环找已知矩阵a的k阶行列式
a=[1 2 -3 -1;4 3 -5 -2;2 -3 1 -4];
%a=[1 4 2;2 3 -3;-3 -5 1;-1 -2 -4];
%a=magic(5);
[m,n]=size(a);
if m
knum=nchoosek(l,k); %求k阶行列式的个数
str=sprintf('%d阶行列式的个数:%d',k,knum);
disp(str)
s=struct('s',[]);
for i=1:knum
if i==1
s(i).s=a(:,2:n);
elseif i==n
s(i).s=a(:,1:n-1);
else
s(i).s=a(:,[1:i-1,i+1:n]);
end
end
for i=1:knum
d(i)=det( s(i).s);
end
d
elseif m>n
k=n;l=m;
knum=nchoosek(l,k);%求k阶行列式的个数
str=sprintf('%d阶行列式的个数:%d',k,knum);
disp(str)
s=struct('s',[]);
for i=1:knum
if i==1
s(i).s=a(2:m,:);
elseif i==n
s(i).s=a(1:m-1,:);
else
s(i).s=a([1:i-1,i+1:m],:);
end
end
for i=1:knum
d(i)=det( s(i).s);
end
d
%det(s(:).s)
else
s=a;
det(s)
end