Matlab ワークスペースの一部のデータをバイナリ ファイルにパックし、後でそのデータをワークスペースに復元できるようにしたいと考えています。(データは、テレメトリ データ ログのヘッダーの一部を形成します。テレメトリを生成したデータをファイル内に直接含めると便利です。)
load
andコマンドがまさにこれを行うことは承知していsave
ますが、私の状態は独特だと思います。ワークスペース データをファイルに保存すると、ファイルを開き、テレメトリ データをファイルに追加する (C で記述された) 別のプログラムが作成されます。私は考えずload
、save
これを処理します。
Mathworks File Exchange にあるツールを使用してcstruct
データを BLOB にパックし、fwrite
. このアプローチの注意点は、cstruct
アンパック時にパッキング形式を認識している必要があることです。データの形式は変更されており、今後も変更される可能性があるため、この要件を削除することをお勧めします。
理想的には、バイト カウント X をファイル ヘッダーに書き込み、その後に MAT 形式のデータを含む (サイズ X の) バイナリ BLOB、その後にさまざまなサイズのテレメトリ データの BLOB を書き込みたいと考えています。データをアンパックしたい場合、X バイトのデータを読み取り、それを MAT ファイルとして解釈すると、魔法のようにワークスペースに表示されます。
ワークスペース変数をバイナリ BLOB にパックし、それらの構造を事前に知らなくてもアンパックする方法はありますが、バイナリ データはより大きなファイルの一部として保存されますか?
load
編集:私が必要だとは思わず、save
必要なものであるという明確化を追加しました。