matlab 求矩阵秩,用MATLAB编程求矩阵的秩

matlab 求矩阵秩,用MATLAB编程求矩阵的秩fori=n:-1:1我明白了,就是极大无关组,我的这个程序把所有的基都写出来了,你只要选一个就可以,还对两种矩形的矩阵(例如2×3,3×2都测试了);如果谁会优化这个程序的会更好!代码如下:ji.m%A=[17241815%23571416%46132022%812264044]A=[1,0,1,2;2,0,2,4;1,-1,1,1…

大家好,又见面了,我是你们的朋友全栈君。

for i=n:-1:1

我明白了,就是极大无关组,我的这个程序把所有的基都写出来了,你只要选一个就可以,还对两种矩形的矩阵(例如2×3,3×2都测试了);如果谁会优化这个程序的会更好!

代码如下:ji.m

% A=[17 24 1 8 15

% 23 5 7 14 16

% 4 6 13 20 22

% 8 12 26 40 44]

A=[1, 0, 1, 2; 2, 0, 2, 4; 1, -1, 1, 1];

% A=[2 4 6 8;3 6 9 12]

%

A=[1 2 1;

% 0 0 -1;

% 1 2 1;

% 2 4 1];% A的三组测试数据

r=rank(A);

s1=size(A);

c=1:min(size(A));

combos=combntns(c,r);

s2=size(combos);

if s1(1)<=s1(2)

for

i=1:s2(1)

B(:,:,i)=A(combos(i,1:r),1:s1(2));

if rank(B(:,:,i))==r

C=B(:,:,i)

end

end

else

for

i=1:s2(1)

B(:,:,i)=A(1:s1(1),combos(i,1:r));

if rank(B(:,:,i))==r

C=B(:,:,i)

end

end

end

复制内容到剪贴板代码:

clc; clear all;

%% 矩阵预处理

A=[1, 0, 1, 2; 2, 0, 2, 4; 1, -1, 1, 1];

r = rank(A);

s1 = size(A);

c = 1 : min(size(A));

combos = combntns(c,r);

s2 = size(combos);

%% 求出极大线性无关组

if s1(1) <= s1(2)

for i = 1

: s2(1)

B(:, :, i) = A(combos(i, 1:r), 1:s1(2));

if rank(B(:, :, i)) == r

C = B(:, :, i);

end

end

else

for i = 1

: s2(1)

B(:, :, i) = A(1 : s1(1), combos(i, 1:r));

if rank(B(:, :, i)) == r

C = B(:, :, i);

end

end

end

%% 正规化

for i = 1 : size(C, 1)

a1 =

max(C(i, :));

for j = 1

: size(C, 2)

a1 = gcd(a1, C(i, j));

end

C(i, :) =

C(i, :) / a1;

end

%% 打印

fprintf(‘\n The Basis Vector of Martix : \n’)

disp(A);

fprintf(‘ is : \n\n’);

for i = 1 : size(C, 1)

if i

> 1 & i <= size(C,

1)

fprintf(‘ + \n’);

end

str =

sprintf(‘k%d*[‘, i);

fprintf(str);

for j = 1

: size(C, 2)-1

fprintf(‘%.3f, ‘, C(i, j));

end

fprintf(‘%.3f ]’, C(i, j+1));

end

fprintf(‘\n\n ki belong to R \n’);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139149.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • VMware许可证过期_windows许可证过期什么原因

    VMware许可证过期_windows许可证过期什么原因激活密钥VMware2017v14.x永久许可证激活密钥FF31K-AHZD1-H8ETZ-8WWEZ-WUUVACV7T2-6WY5Q-48EWP-ZXY7X-QGUWD这表文章解决了大部分的常见问题,大家可以去看看http://www.zdfans.com/5928.html

  • 玩转电源设计,8个优选逆变电源参考方案大合辑

    玩转电源设计,8个优选逆变电源参考方案大合辑利用晶闸管电路把直流电转变成交流电,这种对应于整流的逆向过程,定义为逆变。例如:应用晶闸管的电力机车,当下坡时使直流电动机作为发电机制动运行,机车的位能转变成电能,反送到交流电网中去。又如运转着的直流电动机,要使它迅速制动,也可让电动机作发电机运行,把电动机的动能转变为电能,反送到电网中去。1、基于STM32单片机SPWM逆变电源设计功能描述:单片机采用:STM32单片机(型号:STM32F030F4P6)输出:正弦波频率:可调;幅值:可调;SPWM逆变原理:单片机SPWM驱动H桥+后级滤

  • java四舍五入取整算法(小数四舍五入取整公式)

    简介Math类中提供了5个与取整相关的函数,如下所示:staticdoubleceil(doublea):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。staticdoublefloor(doublea):地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。staticdoublerint(doublea):四舍五入函数,返

  • eclipse如何创建java_eclipse如何创建java项目

    eclipse如何创建java_eclipse如何创建java项目eclipse创建java项目的方法:首先点击箭头所指的file选项,并新建project;然后点击项目下的src包,右键SEC,选择箭头所指的new和CLASS;最后输入框中输入class名称,勾选箭头所指的框。本教程操作环境:windows7系统、java10&&EclipseIDE2020版,DELLG3电脑,该方法适用于所有品牌电脑。相关免费学习推荐:java基础教程…

  • LoadRunner教程06:录制测试脚本

    LoadRunner教程06:录制测试脚本LoadRunner教程06:录制测试脚本

  • lookdiv激活码_在线激活

    (lookdiv激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1435QFILVV-eyJsaWNlb…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号