Мне нужно преобразовать матрицу проверки четности H
(которая состоит только из единиц и нулей) из нестандартной формы в стандартную, то есть выразить ее как:
Hsys = [A | I]
H
и Hsys
имеют одно и то же измерение: (n-k,n)
. I
выше соответствует единичной матрице размерности (n-k)
.
Исключение Гаусса-Жордана пригодится для решения этой проблемы. Для этой цели в Matlab есть специальная команда rref
, однако она больше не действует при работе с GF(2), как в нашем случае. Просматривая Интернет я нашел на Github потенциально подходящее решение для преодоления этого недостатка. Однако это не всегда получается.
Я также пытался сделать HH = mod(rref(H),2)
, что вообще не сработало, так как многие элементы вывода не были двоичными.
Здесь ниже вы можете найти три образца нестандартных матриц проверки на четность, в которых может быть применено исключение Гаусса-Жордана (по GF(2)). Поскольку всегда должен быть способ систематизировать любую матрицу, мне нужен метод, работающий с матрицами любой размерности.
Этот первый образец взят из сообщение sid в Stackoverflow, еще не ответил:
H=[1 0 1 1 0;
0 0 1 0 1;
1 0 0 1 0;
1 0 1 1 1];
H=[1 1 0 1 1 0 0 1 0 0;
0 1 1 0 1 1 1 0 0 0;
0 0 0 1 0 0 0 1 1 1;
1 1 0 0 0 1 1 0 1 0;
0 0 1 0 0 1 0 1 0 1];
Последняя представляет собой матрицу размерности (50x100)
, ее можно найти по по этой ссылке на мой Dropbox< /а>.
Редактировать 21.06.2017
Решение, предложенное @Jonas, сработало в некоторых случаях, но не в большинстве из них, поскольку матрица H кажется сингулярной. Любой другой подобный способ сделать это?
Заранее спасибо и с наилучшими пожеланиями.