Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB中是否有任何用于更改矩阵形式的函数?

我必须考虑以下规则,通过更改已知矩阵的形式来获取未知矩阵:

H = [-P'|I] %' G = [I|P] 哪里
  • H是已知矩阵
  • G是必须计算的未知矩阵
  • 我是身份矩阵
例如,如果我们有一个矩阵,

H = [1 1 1 1 0 0; 0 0 1 1 0 1; 1 0 0 1 1 0] 其形式必须更改为

H = [1 1 1 1 0 0; 0 1 1 0 1 0; 1 1 0 0 0 1] 所以

-P' = [1 1 1; 0 1 0; 1 1 0] 在二元矩阵-P = P情况下。

因此

G = [1 0 0 1 1 1; 0 1 0 0 1 0; 0 0 1 1 1 0] 我知道如何通过执行基本的行操作在纸上解决问题,但尚未弄清楚如何使用MATLAB解决问题。

解决给定问题的方法是什么?



回答:

如果-P'中的列顺序无关紧要,这是使用函数ISMEMBER的一种解决方案:

>> H = [1 1 1 1 0 0; 0 0 1 1 0 1; 1 0 0 1 1 0]; %# From above >> pColumns = ~ismember(H',eye(3),'rows') %'# Find indices of columns that %# are not equal to rows pColumns = %# of the identity matrix 1 0 1 1 0 0 >> P = -H(:,pColumns)' %'# Find P P = -1 0 -1 -1 -1 0 -1 -1 -1 >> G = logical([eye(3) P]) %# Create the binary matrix G G = 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 注意:此解决方案将适用于H整数或二进制值。如果H具有浮点值,则在使用ISMEMBER时,您可能会遇到浮点比较的问题(有关此问题的更多讨论,请参见此处此处 )。



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:17


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.