matlab如何从一个矩阵中找到可逆的分块矩阵

 我来答
速秀梅纪乙
2019-09-23 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:812万
展开全部
设m为道20X16的矩阵。若存在mp1*m=E,则mp1必为16x20的矩阵。若存在m*mp2=E,则mp2必为16x20的矩阵。其中E为单位阵。
matlab实现如下:
a=magic(5);
a(:,4:5)=[]%删除最后2列得到5x3的矩阵版
ap=pinv(b)%得到一权个3x5的逆矩阵
ap*a%使得ap*a=E
b=magic(5);
b(4:5,:)=[]%删除最后2行得到3x5的矩阵
bpt=pinv(b');
bp=bpt'
%得到一个5x3的逆矩阵
b*bp
%使得b*bp=E
或者补全矩阵为方阵,补全的向量需要与构成矩阵的向量线性无关
a=magic(5);
a(:,4:5)=[]%删除最后2列得到5x3的矩阵
as=[
a
[0
0
0
1
0]'
[0
0
0
0
1]'];%补全为方阵
asp=inv(as);%得到一个5x5的逆矩阵
asp*a%使得asp*a的结果为上面为3x3单位阵,下面为2x3零矩阵的5x3矩阵
井芷昳rq
2019-10-17 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:878万
展开全部
%假设你原有的矩阵是存百在变量
in

a=nchoosek(1:20,16);%产生20各种取16个的组合,会有4845种,返回一个4845x16的矩度阵
num=size(a,1);%num=4845
choose=true(num,1);
for
ii=1:num
temp=in(a(ii,:),:);%取第ii行的组合,形成temp方阵
d=det(temp);%计算行列式知
if
d==0
%如果计入计算截断误差,可以用道条件abs(d)<eps判断
choose(ii)=false;
%标记行列式为0的组合
end
end
chooseout=a(choose,:);%chooseout是nx16的矩阵,n为符合条件的矩阵个数
%可用out=in(chooseout(n,:),:),获得第n个符合条件的矩阵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盈奕声屈鸟
2020-04-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:968万
展开全部
这个确实没有太多的难度,每次取两个矩阵的一行就行了。
具体程序如下:
clear all
close all
a = [1 2 3;4 5 6;7 8 9]
b = [2 3 4;5 6 7;8 9 10]
[m,n]=size(a);
for i = 1:m
c = [a(i,:);b(i,:)]
end结果为:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式