我已经生成了大小为602 * 602的二进制非奇异矩阵
l = 602;
w = round (rand (l,l));
现在我想以二进制形式找到此矩阵的逆矩阵,我尝试了这个命令
w_inv = mod(inv(w),2)
但结果不是二进制形式。帮助!
答案 0 :(得分:2)
首先,生成矩阵w
的方式并不能保证它是非单数的;只有在大多数情况下才会这样。
除此之外,w
的倒数是inv(w)
。那个乘以w
的唯一矩阵将给出单位矩阵。当然,逆矩阵通常不是二进制(或甚至整数值)。如果将mod(,... ,2)
应用于逆矩阵,它将不再是逆矩阵。
答案 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 Computations和Create Galois field array。 顺便说一句,在实际领域,w的决定因素不是无限的,只是大到可以表示为IEEE浮点数。