我有一個函數可以用matlab編碼器導出爲C++代碼。在代碼中,矩陣從mat文件中加載。我正在使用:如何在運行時使用matlab編碼器初始化變量?
coder.load('filename.mat');
但是,這不允許我在運行時更改文件。
我試着先用fwrite
將文件保存爲一個二進制文件,然後閱讀如下解決方案:
fileId = fopen(filename_variable,'r');
file_data = fread(fileId,Inf,'double');
fclose(fileId);
這讓我在運行時加載不同的文件。然而該功能被稱爲5Hz,因此在這種情況下不斷加載文件。有沒有辦法只在Matlab中加載文件一次?還是有另一種方法來解決這個問題?
PS: 到文件名傳遞給Matlab的側I在Matlab使用:
coder.typeof('s',Inf);
和emxArray_char_T
類型的變量傳遞到MATLAB函數,通過創建:
emxArray_char_T* filename = emxCreateWrapper_char_T(filename_char_pointer, 1, size);