resample的Matlab代码生成:项数N必须是常量
Matlab code generation of resample: the number of terms N must be constant
我使用 Matlab 编码器生成以下函数的 C 代码:
function [out] = myresample(in)
out = resample(in,4644,1000,10);
end
并通过 codegen myresample -args {coder.typeof(0, [1 Inf]), 0} -config cfg
生成代码,其中 cfg = coder.config('lib')
,cfg.DynamicMemoryAllocation = 'AllVariableSizeArrays'
。
但它报告错误为:
??? The number of terms N must be constant.
我很困惑为什么它是错误的。有趣的是,当我将函数更改为
function [out] = myresample(in)
out = resample(in,10,10,10);
end
有效。
我发现 some links 解释了如何生成 resample
的代码。但它似乎不适合我的情况。
我用的是 Matlab 2017b
谢谢。
C/C++ Code Generation: Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
C and C++ code generation for resample requires DSP System Toolbox™ software.
The upsampling and downsampling factors must be specified as constants. Expressions or variables are allowed if their values do not change.
Variable-size inputs are not supported.
在您的代码中,您有 in
不受大小限制。
在您的函数 myresample
中,您应该尝试指定一个限制。类似于:
limited_in = in(1:128);
out = resample(limited_in,4644,1000,10);
因此 resample
的输入大小将始终保持不变。
我使用 Matlab 编码器生成以下函数的 C 代码:
function [out] = myresample(in)
out = resample(in,4644,1000,10);
end
并通过 codegen myresample -args {coder.typeof(0, [1 Inf]), 0} -config cfg
生成代码,其中 cfg = coder.config('lib')
,cfg.DynamicMemoryAllocation = 'AllVariableSizeArrays'
。
但它报告错误为:
??? The number of terms N must be constant.
我很困惑为什么它是错误的。有趣的是,当我将函数更改为
function [out] = myresample(in)
out = resample(in,10,10,10);
end
有效。
我发现 some links 解释了如何生成 resample
的代码。但它似乎不适合我的情况。
我用的是 Matlab 2017b
谢谢。
C/C++ Code Generation: Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
C and C++ code generation for resample requires DSP System Toolbox™ software. The upsampling and downsampling factors must be specified as constants. Expressions or variables are allowed if their values do not change.
Variable-size inputs are not supported.
在您的代码中,您有 in
不受大小限制。
在您的函数 myresample
中,您应该尝试指定一个限制。类似于:
limited_in = in(1:128);
out = resample(limited_in,4644,1000,10);
因此 resample
的输入大小将始终保持不变。