【发布时间】:2011-02-04 05:48:22
【问题描述】:
考虑到以下规则,我必须通过改变已知矩阵的形式来获得未知矩阵:
H = [-P'|I] %'
G = [I|P]
在哪里
- H 是已知矩阵
- G 是一个需要计算的未知矩阵
- I 是单位矩阵
例如,如果我们有一个矩阵,
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 == P 的评论只有在您将其限制为整数字段时才是正确的。您应该在问题中明确说明。
-
如果您将 Matlab 语句格式化为代码格式,将会有很大帮助。
-
@Niko:请查看帮助以了解如何格式化帖子以使其更具可读性。
-
两个问题:1)在你的例子中
-P'不应该等于[1 1 1; 0 1 1; 1 1 0],这会给出G = [1 0 0 1 0 1; 0 1 0 1 1 1; 0 0 1 1 1 0]? 2)您没有指定如何重新排序H。是否需要交换列,或者是否可以将不在I中的列简单地向左移动?换句话说,[1 1 1; 0 1 1; 1 0 1]是-P'的有效值吗? -
您还需要使用 Matlab 执行基本的行操作。我建议您从关于 [Permutation Matrices][1] 的 Wikipedia 文章开始。开始后更新您的问题。 [1]:en.wikipedia.org/wiki/Permutation_matrix