MAT ファイル (大きな配列) に変数があり、MATLAB C/C++ API を使用して新しい行 (2D 配列を想定) を追加してこの変数を更新したい場合、ロードする必要があることに気付きました。変数をメモリに入れ、新しい行でコピーを作成し、最後に既存の配列を新しい配列で上書きします。
私は大きな/巨大な配列を扱っているので、すべてをメモリにロードせずに変数を更新する方法を知りたいです。
ありがとうございました。
MAT ファイル (大きな配列) に変数があり、MATLAB C/C++ API を使用して新しい行 (2D 配列を想定) を追加してこの変数を更新したい場合、ロードする必要があることに気付きました。変数をメモリに入れ、新しい行でコピーを作成し、最後に既存の配列を新しい配列で上書きします。
私は大きな/巨大な配列を扱っているので、すべてをメモリにロードせずに変数を更新する方法を知りたいです。
ありがとうございました。
ファイルの末尾にのみ新しいデータを追加できます。「ファイルの途中 (または先頭) にデータを挿入する」方法はありません。ファイルを読み取り、新しいデータを書き込む必要があります。古いデータが新しいデータよりも小さい場合、新しいデータが古いデータの一部を上書きするため、これを「その場で」実行する方法はありません。
必ずしも元のファイルに書き戻す必要がないと仮定すると、一度にファイルの一部をロードし、処理の開始時に拡張データを書き込む新しいファイルを作成できます。すべてのデータを書き込んだら、必要に応じて、新しいファイルの名前を入力ファイルの元の名前に変更できます。