MATLAB Stateflow `ml` 错误(C 与 MATLAB 语言)

MATLAB Stateflow `ml` error (C vs MATLAB language)

我正在尝试在 Stateflow 中使用 ml 函数。由于误解了我的错误,我尝试了帮助中的示例:http://www.mathworks.com/help/stateflow/ug/calling-built-in-matlab-functions-and-accessing-workspace-data.html "Which ml Should I Use?" 部分。

然后出现错误:

Subscript indices must be of a builtin numeric class. This index has class 'char'.

Transition '[i<5]{...,i,i);}' "'A%d = rand(%d)'"

调试器认为 ml 是一个变量并尝试将其添加到模型资源管理器中。无法正确理解!

我用心阅读帮助,唯一让我陷入沉思的地方:

Caution Because MATLAB functions are not available in a target environment, do not use the ml namespace operator and the ml function if you plan to build a code generation target.

这只是我的假设,但也许我正在使用代码生成器,这就是我出错的原因?顺便说一下,我试图 Google 关于代码生成器,但无法清楚地了解它到底是什么...... 我的假设再次是:simulink 内置 MATLAB 函数使用代码生成器 so 和 Stateflow 中的图表。也许我需要使用一些 mex 文件或其他东西来避免使用它?

经过两个小时的尝试,我得到了这个: 代码生成——比方说,它是 MATLAB 语言。 要使用 ml,我们需要将 Chart 的选项设置为“C 语言”。 喜欢这里:

在左下角我们可以看到图表类型:现在是C。你也可以在选项中看到这个。

所以 select Cml 开始工作。