我是靠谱客的博主 热心石头,最近开发中收集的这篇文章主要介绍Undefined function or variable. The first assignment to a local variable determin its class.,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        matlab的coder工具箱能够把大多数matlab代码转换为c/c++代码或dll。今天在转换一个函数时出现了以下错误:Undefined function or variable 'imfs'. The first assignment to a local variable determines its class.

        我的matlab代码如下:

function [imfs, residual] = fun_vmd(data, num_imfs)
[imfs, residual] = vmd(data, 'NumIMFs', num_imfs);
end

        作用是把原始的复杂信号分解为若干简单信号。data是原始信号输入,num_imfs是输入参数,指定分解为多少条简单信号。imfs是分解后的信号输出,residual是分解后的残差输出。此函数在matlab中调用没有任何问题。

data = load("data01.txt");
[imfs, residual] = fun_vmd(data, 5);

        我把这个函数转换为c代码时,指定输入参数data类型为double,形式是Nx1向量;输入参数num_imfs类型为int32,形式是1x1向量。结果开始生成源码时出现了错误:

Function call failed.
Undefined function or variable 'imfs'. The first assignment to a local variable determines its class.
Undefined function or variable 'residual'. The first assignment to a local variable determines its class.

        在网上查了各种资料和问答,都语焉不详,测试了各种方案都没解决,包括把imfs和residual使用前初始化,都不行。

        最后的解决办法是把num_imfs类型由int32改为double,问题成功解决。

最后

以上就是热心石头为你收集整理的Undefined function or variable. The first assignment to a local variable determin its class.的全部内容,希望文章能够帮你解决Undefined function or variable. The first assignment to a local variable determin its class.所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部