matlab中随机生成的二进制矩阵的逆

时间:2015-06-08 14:40:16

标签: matlab linear-algebra

我已经生成了大小为602 * 602的二进制非奇异矩阵

l = 602;
w = round (rand (l,l));

现在我想以二进制形式找到此矩阵的逆矩阵,我尝试了这个命令

 w_inv = mod(inv(w),2)

但结果不是二进制形式。帮助!

2 个答案:

答案 0 :(得分:2)

首先,生成矩阵w的方式并不能保证它是非单数的;只有在大多数情况下才会这样。

除此之外,w的倒数是inv(w)。那个乘以w唯一矩阵将给出单位矩阵。当然,逆矩阵通常不是二进制(或甚至整数值)。如果将mod(,... ,2)应用于逆矩阵,它将不再是逆矩阵。

另一个问题是在GF(2)中找到一个逆矩阵,即使用模2加法。如果是这种情况,请参阅here

答案 1 :(得分:2)

如果您在GF(2)中安装了通信系统工具箱,则可以像

一样获得
>> l = 602;
>> w = gf(round(rand (l,l)));
>> whos
  Name        Size               Bytes  Class     Attributes

  l           1x1                    8  double              
  w         602x602            1450156  gf                  

>> b = inv(w);
>> all(all(b*w == eye(l,l)))

ans =

     1

>> all(all(w*b == eye(l,l)))

ans =

     1

>> 

(CFR)。 Galois Field ComputationsCreate Galois field array。 顺便说一句,在实际领域,w的决定因素不是无限的,只是大到可以表示为IEEE浮点数。