我正在尝试使用嵌入式matlab函数模拟一个非常简单的模型,该函数接受输入并使用输入到matlab函数的常量块将值10添加到值,然后输出到显示块。
一旦按下模拟,我就会收到大量的错误。首先,我在橙色文本中得到一个巨大的段落,说明解决方案'variableStepDiscrete'
而不是解算器'ode45'
以下是从命令提示符回显的其余行:
Code Directory :
"/Users/dazgti/Documents/MATLAB/slprj/_sfprj/embeddedFunction/_self/sfun/src"
Machine (#32): "embeddedFunction" Target : "sfun"
Chart "MATLAB Function" (#49):
.
"c2_embeddedFunction.h"
"c2_embeddedFunction.c"
"embeddedFunction_sfun.h"
"embeddedFunction_sfun.c"
"embeddedFunction_sfun_debug_macros.h"
Interface and Support files:
"embeddedFunction_sfun_registry.c"
Code generation failed Attempt to execute SCRIPT union as a function:
/Users/dazgti/Documents/MATLAB/union.m
我的matlab目录中有一个名为union.m
的脚本文件,但我不知道它为什么提到它。
function y = fcn(u)
%#codegen
x = u + 10;
y = x;
答案 0 :(得分:1)
MATLAB功能块通过为您在块中输入的MATLAB代码生成“C”代码来工作。在生成代码的过程中,可能已经在MATLAB中从MATLAB功能块基础结构中调用了union功能。由于您已重写了union函数而不是内置函数,因此MATLAB可能试图调用导致错误的脚本。最好避免使用与MATLAB内置函数相同的命名函数。