Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Simulink内的Matlab函数不支持RMS_Matlab_Code Generation_Simulink_Matlab Coder - Fatal编程技术网

Simulink内的Matlab函数不支持RMS

Simulink内的Matlab函数不支持RMS,matlab,code-generation,simulink,matlab-coder,Matlab,Code Generation,Simulink,Matlab Coder,Simulink有一个名为“Matlab函数”的模块,允许您在Simulink流程图中创建自定义函数 我在Simulink Matlab函数模块中实现了一个简单的函数。我的函数包含对Matlab内置的rms()的调用。当我运行Simulink模型时,我得到以下错误: The function 'rms' not supported for standalone code generation 如果我从Simulink模型中的Matlab函数中删除rms,错误就会消失,模型会完美地运行 问题:

Simulink有一个名为“Matlab函数”的模块,允许您在Simulink流程图中创建自定义函数

我在Simulink Matlab函数模块中实现了一个简单的函数。我的函数包含对Matlab内置的
rms()
的调用。当我运行Simulink模型时,我得到以下错误:

The function 'rms' not supported for standalone code generation
如果我从Simulink模型中的Matlab函数中删除
rms
,错误就会消失,模型会完美地运行

问题:

  • 有没有办法在Simulink中使用Matlab的
    rms
  • Simulink中还有许多其他本机Matlab调用无法使用吗?

独立代码生成不支持
错误的一部分告诉我,您正在尝试使用Matlab Coder之类的产品来生成可执行代码或本机代码。如果是这种情况,那么有许多简单的调用不能直接在核心Matlab和工具箱中使用。编码器产品仅支持该语言的一个子集。更多信息可以在这里找到

至于对
rms
的调用,它只计算平方平均值的根。尝试创建一个替代使用类似

sqrt(平均值(x.^2))


…其中,
x
是信号。

我只想澄清和扩展learnvst回答中的一些要点

即使您只是尝试模拟包含MATLAB功能块的模型,并且没有明确尝试执行代码生成,您仍然会得到独立代码生成不支持的
错误

正如learnvst所指出的,对可用于代码生成的函数有多种限制。但是,如果您只想模拟您的模型,Simulink允许您在将这些“黑名单”函数表示为外部函数时进行模拟。这让Simulink知道这些函数将仅用于模拟目的,而不是代码生成的一部分

在特定情况下,在调用
rms
之前的某个位置添加以下代码行:

coder.extrinsic('rms');
即使在执行代码生成时,在MATLAB函数中将函数声明为外部函数通常也是有用的。例如,您可能希望在模拟期间使用
plot
命令可视化数据,但显然不需要将
plot
命令作为生成代码的一部分


有关将函数声明为外部函数的更多信息,请参阅。

谢谢!我还没来得及尝试一下,但如果我在
coder.extrinsic
方面遇到任何困难,我会继续跟进。