如何生成c代码dsp.MedianFilter吗?

11视图(30天)
追逐鲍曼
追逐鲍曼 2021年9月23日
回答: 以斯拉斯坦 2021年9月23日
我试图从dsp.MedianFilter生成代码。我相信我在这里不能遵守规定的局限性: //www.tatmou.com/help/coder/ug/use-system-objects-in-matlab-code-generation.html
然而,我相信完全是错误的。当我试图生成代码,得到:
“错误决定类型输入movMed: medObject”。
“类dsp。不支持MedianFilter编码器。金宝app类型,因为它是一个处理类。”
我设置这个正确吗?谢谢。
testbench.m
t = 1:1:12;
medObject = dsp.MedianFilter (“WindowLength”4);
i = 1:12
费尔(i) = movMed(我medObject);%
结束
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
movMed.m
函数f = movMed (t, medObject)
f = medObject (t);
结束

答案(1)

以斯拉斯坦
以斯拉斯坦 2021年9月23日
嗨,追逐,
目前限制在MATLAB编码器可以防止使用句柄类作为顶级入口点参数(输入或输出到入口点函数)。详情请见下面的链接:
在你的情况下,dsp。MedianFilter处理类对象,所以它不能使用入口点函数作为一个参数“movMed”。你观察的错误有关的编码器。类型是试图指定的结果处理类作为参数一个入口点函数。
作为一个可能的解决方案,你可以移动的创建的dsp。MedianFilter对象内部的入口点,这样就不再需要作为参数:
函数 f = movMed (t)
medObject = dsp.MedianFilter (“WindowLength”, 4);
f = medObject (t);
结束
> > codegen movMed args 0
MATLAB编码器仍有能力处理生成代码的类对象,只要这些对象不逃避生成的代码通过入口点的输入或输出。

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!