在 Simulink 中加载分类模型
Loading Classification Model in Simulink
我使用 Matlab 的 Classification Learner App 训练了一个分类模型(分类树)。我已将其导出到工作区并将其另存为 .mat 文件。
我需要将它嵌入到 Simulink 模型中,以便在仿真过程中的每个时间步进行预测。我尝试使用 Matlab Function 块并使用 "load" 从 .mat 文件加载分类树,然后使用 mdl.predictFcn(myInputData) 对新数据进行预测。但是,当我尝试 运行 simulink 模型时,出现错误:
Found unsupported class for variable using function 'load'. MATLAB
class 'function_handle' found at 'mdl.ClassifierTTC.predictFcn' is
unsupported.
这是否意味着我不能在 Simulink 中使用我的分类模型?有没有人尝试过这样做?
提前致谢。
无需编写任何 C 代码即可解决此问题。所有必需的 C 代码都可以使用 MATLAB 的代码生成器生成。
生成分类模型后,将其从 Classification Learner App 导出到工作区,然后使用 saveCompactModel() 函数保存。请注意,即使在最新的 MATLAB 版本 (2017a) 中也不支持某些分类器模型。
编写一个 m 文件,加载看不见的数据并将其传递给分类器,并使用 predict() 函数从分类器中获取分类标签。使用带有 dll 配置的 codegen() 从 m 文件生成 C 代码,但不要让它编译。这将生成所有必要的头文件和源文件。
现在,使用 legacy_code() 生成 S-Function 以将 C 代码导入 Simulink。 Link 所有生成的头文件和源文件到 S Function,并使用 legacy_code() 生成 S Function 块和 tlc 文件。
这将生成一个 S 函数块,其中嵌入了分类器和预测函数。 legacy_code() 函数为此 S Function 生成一个 tlc,并允许编译 S Function 块。
我使用 Matlab 的 Classification Learner App 训练了一个分类模型(分类树)。我已将其导出到工作区并将其另存为 .mat 文件。
我需要将它嵌入到 Simulink 模型中,以便在仿真过程中的每个时间步进行预测。我尝试使用 Matlab Function 块并使用 "load" 从 .mat 文件加载分类树,然后使用 mdl.predictFcn(myInputData) 对新数据进行预测。但是,当我尝试 运行 simulink 模型时,出现错误:
Found unsupported class for variable using function 'load'. MATLAB class 'function_handle' found at 'mdl.ClassifierTTC.predictFcn' is unsupported.
这是否意味着我不能在 Simulink 中使用我的分类模型?有没有人尝试过这样做?
提前致谢。
无需编写任何 C 代码即可解决此问题。所有必需的 C 代码都可以使用 MATLAB 的代码生成器生成。
生成分类模型后,将其从 Classification Learner App 导出到工作区,然后使用 saveCompactModel() 函数保存。请注意,即使在最新的 MATLAB 版本 (2017a) 中也不支持某些分类器模型。
编写一个 m 文件,加载看不见的数据并将其传递给分类器,并使用 predict() 函数从分类器中获取分类标签。使用带有 dll 配置的 codegen() 从 m 文件生成 C 代码,但不要让它编译。这将生成所有必要的头文件和源文件。
现在,使用 legacy_code() 生成 S-Function 以将 C 代码导入 Simulink。 Link 所有生成的头文件和源文件到 S Function,并使用 legacy_code() 生成 S Function 块和 tlc 文件。
这将生成一个 S 函数块,其中嵌入了分类器和预测函数。 legacy_code() 函数为此 S Function 生成一个 tlc,并允许编译 S Function 块。