MATLAB中用for循环找已知矩阵a的k阶行列式 a=(1 2 -3 -1;4 3 -5 -2;

MATLAB中用for循环找已知矩阵a的k阶行列式a=(12-3-1;43-5-2;2-31-4)... MATLAB中用for循环找已知矩阵a的k阶行列式 a=(1 2 -3 -1;4 3 -5 -2;2 -3 1 -4) 展开
 我来答
我行我素850915
2016-04-14 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1775万
展开全部
%用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<n
k=m;l=n;
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式