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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vagrant系列四:vagrant搭建redis与redis的监控程序redis-stat「建议收藏」

    vagrant系列四:vagrant搭建redis与redis的监控程序redis-stat

    2022年2月8日
    62
  • 公有云和私有云哪种成本更低

    公有云和私有云哪种成本更低​最新调查表明:在虚拟机运行数量相同的情况下,企业使用私有云比公有云更加节省成本。随着企业对私有云和公有云、云服务器的使用经验加深,很多企业表示已经通过实践把握私有云的部署和正确使用,并在成本方面超越公有云。据著名互联网调查研究公司对150位IT决策者调查显示,41%的受访者表示每个虚拟机运行在私有云基础架构比公共云成本更低。在某些情况下,节省的费用非常惊人。9%的受访者表示,他们在私有云运行…

    2022年6月16日
    26
  • 解决:Navicat远程连接mysql失败「建议收藏」

    解决:Navicat远程连接mysql失败「建议收藏」一:修改mysql配置文件,允许远程连接sudovi/etc/mysql/mysql.conf.d/mysqld.cnf将bind-address=127.0.0.1注释二:登录mysql,运行命令grantallon.to用户名@”%”identifiedby“密码”;flushprivileges;三:重启mysqlservicemysqlrestart

    2022年10月14日
    0
  • 操作系统中常用的进程调度算法有_调度算法有哪些

    操作系统中常用的进程调度算法有_调度算法有哪些1、先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直

    2022年9月29日
    0
  • pyCharm常用插件推荐[通俗易懂]

    pyCharm常用插件推荐[通俗易懂]一、插件安装方法File->Settings->Plugins,如下图所示二、MongoPluginMongoPlugin其实就是一款基于Pycharm的可视化数据库工具,通过它能可以很方便地对数据库进行可视化操作。可以在编辑器界面的右侧打开该插件界面,如下图:三、StatisticStatistic是一个项目统计插件,可以给出一个项目的统计信息,包括文件和代…

    2022年8月25日
    4
  • SPSS—回归—二元Logistic回归案例分析

    SPSS—回归—二元Logistic回归案例分析数据分析真不是一门省油的灯,搞的人晕头转向,而且涉及到很多复杂的计算,还是书读少了,小学毕业的我,真是死了不少脑细胞,学习二元Logistic回归有一段时间了,今天跟大家分享一下学习心得,希望多指教!二元Logistic,从字面上其实就可以理解大概是什么意思,Logistic中文意思为“逻辑”但是这里,并不是逻辑的意思,而是通过logit变换来命名的,二元一般指“两种可能性”…

    2025年7月1日
    1

发表回复

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

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