2012-06-28 4 views
0

У меня есть N x N матрица байтов с N = 200,000,000. Я хочу получить значение M[i, j] в O(1) времени и хранить матрицу на жестких дисках более эффективно, чем O(N*N). Матрица не разрежена, но значения всегда находятся между 0..255. Это безнадежно?Хранение огромной матрицы

+0

Если вы можете изолировать шаблоны (кусок матрицы), которые повторяются, вы можете создать мета-матрицу, а затем распаковать ее или использовать метод с таблицей, когда это необходимо. Я не эксперт в этом, но я думаю, что эта стратегия может снизить требования к хранению. – BlackVegetable

+0

Вы пробовали некоторый бенчмарк с [HDF5] (http://www.hdfgroup.org/HDF5/)? –

ответ

0

Если значения матрицы являются случайными, то да, вы ввернуты. Вам понадобится диск 200MB^2.

Если у матрицы есть шаблон, тогда ее можно будет сохранить. Это будет сильно зависеть от того, что вы знаете о матрице, и если есть безопасные преобразования, вы можете сделать это.

Один вопрос, который у меня был бы - есть ли области матрицы, где значения не имеют значения? Если это так, я бы обнул их и не сохранил.

Смежные вопросы