В настоящее время я добавляю большие (десятки ГБ) файлы данных в Matlab, используя memmapfile.Файл, в котором я читаю, состоит из нескольких полей, описывающих данные, которые следуют за ним.Вот пример того, как мой формат может выглядеть:
m.format = { 'uint8' [1 1024] 'metadata'; ...
'uint8' [1 500000] 'mydata' };
m.repeat = 10000;
Итак, я получаю структуру m, в которой один образец данных рассматривается следующим образом:
single_element = m.data(745).mydata(26);
Я хочурассматривать эти данные как матрицу из примера 10 000 x 500 000.Индексирование отдельных предметов таким способом не сложно, хотя и несколько громоздко.Моя настоящая проблема возникает, когда я хочу получить доступ, например, к 4-му столбцу каждой строки.MATLAB не разрешит следующее:
single_column = m.data(:).mydata(4);
Я мог бы написать цикл, чтобы медленно объединить все это в реальную матрицу (кстати, мне не нужны метаданные), но для данных такого большого размераТрудно переоценить, насколько это будет слишком медленно ... не говоря уже о том, что это удвоит требуемую память.Есть идеи?