根据另一个矩阵的行获取矩阵的动态行(Matlab)

Get dynamic rows of matrix based on the ones of another matrix (Matlab)

我是 Matlab 新手,需要一些帮助。 我想计算奇偶校验矩阵,然后使用生成器矩阵

对码字进行编码

我的矩阵如下:

1 0 0 0 1 1 1
0 1 0 0 1 1 0
0 0 1 0 1 0 1
0 0 0 1 0 1 1

密码为1 0 1 1。

我在 Matlab 中的代码如下:

printf('Generator Matrix\n');
G = [
1 0 0 0 1 1 1;
0 1 0 0 1 1 0;
0 0 1 0 1 0 1;
0 0 0 1 0 1 1
]

[k,n] = size(G)

P = G(1:k,k+1:n)

PT = P'

printf('Parity Check Matrix\n');
H = cat(2,PT,eye( n-k ))


printf('Encode the following word : \n');
D = [1 0 1 1]

C = xor( G(1,:), G(3,:) , G(4,:) )

我的问题是我想动态获取 G 矩阵的行以便进行异或运算。 你能帮帮我吗?

非常感谢

你只需要矩阵乘法模2:

C = mod(D*G, 2);

或者,计算 D 指示的 G 行的总和,模 2:

C = mod(sum(G(D==1,:), 1), 2);