MATLAB C/C++ API - обновление большой переменной
Я только что понял, что если у меня есть переменная в MAT-файле (большой массив), и я хочу обновить эту переменную, добавив новую строку (предположим, двумерный массив) с помощью API MATLAB C/C++, тогда необходимо загрузить переменную в память, создайте копию с новой строкой и, наконец, перезапишите существующий массив новым.
Поскольку я работаю с большими / огромными массивами, я хотел бы знать, как обновить переменную, не загружая все это в память.
Спасибо.
1 ответ
Вы можете добавлять новые данные в файл только в конце, нет способа "вставить данные в середину файла" (или в начало). Вам нужно прочитать файл и записать новые данные. Если старые данные меньше, чем новые, это невозможно сделать "на месте", поскольку новые данные будут перезаписывать некоторые из старых данных.
Предполагая, что вам не обязательно записывать его обратно в исходный файл, вы можете загрузить часть файла за раз и в начале обработки создать новый файл, в который вы будете записывать расширенные данные. После того как вы записали все данные, при желании вы можете переименовать новый файл в исходное имя входного файла.