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’);

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu外接显示器无信号_ubuntu笔记本外接显示器

    ubuntu外接显示器无信号_ubuntu笔记本外接显示器Overview 主机配置 启用远程控制 安装软件和支持 其它 注意事项 Reference 主机配置系统:Ubuntu18.04 显卡:Intel集成显卡启用远程控制首先要确保开机能够自动启动远程控制。Ubuntu18自带远程桌面控制服务软件;这里不具体写步骤,自行上网搜索。确保上述远程桌面控制能够开机自启动!!!确保上述远程桌面控制能够开机自启动!!!确保上述远程桌面控制能够开机自启动!!!Ubuntu18自带的远程桌面控制

    2022年8月21日
    8
  • sql注入orderby子句的功能_sql group by order by一起用

    sql注入orderby子句的功能_sql group by order by一起用uniqueidentifier全局唯一标识符(GUID)。注释uniqueidentifier数据类型的列或局部变量可用两种方法初始化为一个值:使用NEWID函数。将字符串常量转换为如下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中

    2025年10月5日
    5
  • ADRC自抗扰控制,有手就行「建议收藏」

    ADRC自抗扰控制,有手就行「建议收藏」由于串级PID还没搞定,就转向了自抗扰控制,用STM32控制无刷电机做了一个ADRC速度闭环,没静差是真的,但感觉也没想象中那么强,就写篇博文记录一下ADRC大概的使用方法和调参大致的方向。

    2022年5月19日
    126
  • DotNetty[通俗易懂]

    DotNetty[通俗易懂]DotNetty中几个重要的库(程序集):DotNetty.Buffers:对内存缓冲区管理的封装。DotNetty.Codecs:对编解码是封装,包括一些基础基类的实现,我们在项目中自定义的协议,都要继承该项目的特定基类和实现。DotNetty.Codecs.Mqtt:MQTT(消息队列遥测传输)编解码是封装,包括一些基础基类的实现。DotNetty.Codecs.Proto…

    2025年8月24日
    2
  • java详细学习路线及路线图

    java详细学习路线及路线图java详细路线:原文出自点击打开链接本文将告诉你学习Java需要达到的30个目标,学习过程中可能遇到的问题,及学习路线。希望能够对你的学习有所帮助。对比一下自己,你已经掌握了这30条中的多少条了呢?路线Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE。这三块相互补充,应用范围不同。J2SE就是Java2的标准版,主要用于…

    2022年6月12日
    30
  • Python 学习笔记 列表 xxx XXX

    Python 学习笔记 列表 xxx XXXPython学习笔记列表xxxXXXbicycles=[‘trek’,’cannondale’,’redline’,’specialized’]print(bicycles)print(bicycles[0])print(bicycles[0].title())print(bicycles[-1])names=[‘wenwen’,’juanjuan’,’yuyu’]forxinnames: prin…

    2022年8月22日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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