Вопрос линейного кодирования - PullRequest
1 голос
/ 26 февраля 2011

Я использую Java, чтобы попытаться реализовать простой линейный код, выраженный как F=SA, где S - это матрица случайных коэффициентов, а A - это вектор исходных фрагментов (таким образом, f = S multiply A).

Я получил оригинальные фрагменты, разделив файл на n частей и преобразовав каждый фрагмент в поток байтов.

Пример:

  • file = 64 КБ
  • каждый оригинальный фрагмент = 1024 байта

Как я могу умножить матрицу на vector(k rows, 1 column) исходных фрагментов?

Я не могу выразить 1024 байта строки * i * для одного целого числа в строке * i *.
Если я использую матрицу вместо вектора, она останется правильной? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2011

Я не уверен, что правильно понял вопрос (Какое отношение имеет 1024k к вектору? Как устроен файл для начала? Какую математическую операцию вы бы хотели выполнить, если у вас нет Ограничение 1024k?) - Но если это простая "матрица (n, m) * Vector (m, 1)", то я бы предложил использовать JAMA . Я работал с этим в прошлом, и это было здорово

0 голосов
/ 26 февраля 2011

Вам не очень понятно, какую математическую операцию вы хотите выполнить и какие размеры имеют матрица и вектор. (вы описываете, что разбили некоторые данные на куски по 1024, но это то, что вы должны делать, или вы думаете, это будет удобно?)

Итак, если вам нужно умножение матрицы на вектор, первым шагом будет найти себе Matrix-Package for Java, подобный следующему: (который я скопировал из этого поста: Производительность математических библиотек Java-матриц? )

Тогда сделайте умножение. Но помните: группировка по 1024 значениям - это то, что вы должны делать? Является ли 1024 числом переменных на наблюдение и равным количеству столбцов в матрице, которую вы должны использовать для линейного преобразования ?: Тогда продолжайте.

...