私は、MATLABコーダーを使ってC++コードにエクスポートする関数を持っています。コードでは、マトリックスがマットファイルから読み込まれます。私は使用していた:実行時にMATLABコーダーを使用して変数を初期化するにはどうすればよいですか?
coder.load('filename.mat');
しかし、これは私が実行時にファイルを変更することはできません。
私が最初にfwrite
を使用してバイナリとしてファイルを保存してから、次のように読み取ることで解決策を試してみました:
fileId = fopen(filename_variable,'r');
file_data = fread(fileId,Inf,'double');
fclose(fileId);
これは私が実行時に別のファイルを読み込むことができます。ただし、この関数は5Hzで呼び出され、この場合、ファイルを連続的にロードしています。 Matlabで一度だけファイルをロードする方法はありますか?あるいは、この問題を解決する別のアプローチがありますか?
PS: Iは、MATLABで使用Matlabの側にファイル名を渡すこと:
coder.typeof('s',Inf);
とMATLAB関数にタイプemxArray_char_T
の変数を渡すことによって作成:
emxArray_char_T* filename = emxCreateWrapper_char_T(filename_char_pointer, 1, size);