【发布时间】:2017-09-28 04:39:10
【问题描述】:
我使用 Matlab 的分类学习器应用程序训练了一个分类模型(分类树)。我已将其导出到工作区并将其另存为 .mat 文件。
我需要将其嵌入到 Simulink 模型中,以便在仿真期间的每个时间步进行预测。我尝试使用 Matlab 函数块并使用“加载”从 .mat 文件加载分类树,然后使用 mdl.predictFcn(myInputData) 对新数据进行预测。但是,当我尝试运行 simulink 模型时出现错误:
使用函数“加载”发现不支持的变量类。 MATLAB 在“mdl.ClassifierTTC.predictFcn”找到的类“function_handle”是 不支持。
这是否意味着我不能在 Simulink 中使用我的分类模型?有没有人尝试过这样做?
提前致谢。
【问题讨论】:
-
这意味着您不能使用
MATLAB Function,但可以使用Interpreted MATLAB Function或m 代码S-Function。 -
您好菲尔,感谢您的回答。我写了一个 S-Function,它起作用了。但是,我的最终目标是编译 Simulink 模型,编译器现在需要一个用于 S-Function 模块的 .tlc 文件。如何生成 .tlc 文件?
-
您需要自己编写。请注意,您使用的功能基本上需要 MATLAB 才能执行,因此 Simulink Coder 不支持。您的 .tlc 文件将需要让 Simulink Coder 生成使用 MATLAB API 功能来执行您的(编译代码)的 c 代码(用于此模块),因此在目标机器上需要 MATLAB。
-
我明白了。目标机器安装了 MATLAB,所以如果可以让 .tlc 做到这一点,我猜它应该可以工作。但是,我从来没有写过 .tlc 文件,更不用说这样的高级版本了,你知道我可以用作示例的任何示例代码吗?是否可以使用 S-Function 构建器执行此操作(我相信它会生成一个 .tlc)?
-
S-Function 构建器用于创建 C 代码 S-Function。大概你有一个 m-code S-function。您需要自己编写 tlc 文件。这很重要,尽管 Simulink Coder 文档有示例,但它不会是剪切/粘贴/修改已经存在的内容的情况。但从 Simulink Coder 文档的 TLC 部分开始。
标签: matlab machine-learning simulink