如何使用 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 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 matlab 编码器在运行时初始化变量?

使用 MATLAB 编码器将 MATLAB 转换为 C++

如何使用以下算法手动将 1 范数回归编码为 matlab 函数

Matlab 编码器 fzero 函数

将 MATLAB 代码转换为库

如何在 MATLAB 中使用 pca 函数来选择有效的特征? [复制]