如何使用 matlab 编码器将 matlab 函数“pchip”转换为 c 代码
Posted
技术标签:
【中文标题】如何使用 matlab 编码器将 matlab 函数“pchip”转换为 c 代码【英文标题】:How to convert matlab function 'pchip' to c code with matlab coder 【发布时间】:2014-04-22 20:40:40 【问题描述】:我对 Matlab Coder 有疑问。我想从 Matlab 插值函数pchip
生成 C 代码。我用coder.screener
验证了该函数,它说它可用于代码生成,但是当我尝试构建pchip.m
文件时,我收到此错误:
独立代码生成不支持函数“pchip”。请参阅 coder.extrinsic 的文档,了解如何在仿真中使用此函数。
谁能帮帮我?我真的需要在 C 中为我正在编写的程序转换这个函数。
【问题讨论】:
【参考方案1】:pp = pchip(x,y)
从documentation 生成代码的限制:
x
必须严格递增。
不删除具有NaN
值的y
条目。
如果您为pp = pchip(x,y)
语法生成代码,则无法将pp
输入到MATLAB 中的ppval
函数。要从代码生成软件创建的 pp
结构创建 MATLAB pp
结构:
在代码生成中,使用unmkpp
将分段多项式详细信息返回给 MATLAB。
在 MATLAB 中,使用 mkpp
创建 pp
结构。
所以,请检查您是否满足前面的几点;尤其是最后一个。您在文档中提供了有关如何生成/取消生成 picwise 多项式的示例。
【讨论】:
在 R2014a mathworks.com/help/coder/release-notes.html 中添加了对pchip
的代码生成支持,因此如果您使用的是之前的版本,您可以考虑升级。
非常感谢 libill39 就是这样!该解决方案正在升级到 r2014。以上是关于如何使用 matlab 编码器将 matlab 函数“pchip”转换为 c 代码的主要内容,如果未能解决你的问题,请参考以下文章