我有一个函数可以用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);