Получить динамические c строк матрицы на основе строк другой матрицы (Matlab) - PullRequest
1 голос
/ 20 июня 2020

Я новичок в 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, чтобы выполнить операцию xor. Не могли бы вы мне помочь?

Большое спасибо

1 Ответ

2 голосов
/ 20 июня 2020

Вам нужно только матричное умножение по модулю 2:

C = mod(D*G, 2);

В качестве альтернативы вычислите сумму строк G, обозначенных D, по модулю 2:

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