我正在创建一个模拟,我将自己移植到另一种语言。所以我不需要使用 Simulink 的代码生成功能。如何关闭它允许代码生成的尝试?
例如,我在MATLAB Function
块中有以下代码:
function OutImage = ResizeCropPad(InImage, Width, Height)
%#codegen
%coder.extrinsic('imresize');
% resizing to defined height
scale = Height/size(InImage,1);
InImage = imresize(InImage, scale);
% cropping to defined width
if Width<size(InImage,2)
padarray(InImage, [0 size(InImage,2)-Width], 0, 'both');
elseif Width>size(InImage,2)
b = floor((Width-size(InImage,2))/2);
InImage = InImage(:,b:b+Width-1,:);
end
OutImage = InImage;
它给出了一个错误
独立代码生成不支持函数“imresize”。请参阅 coder.extrinsic 的文档以了解如何在模拟中使用此函数。
如果我取消注释coder.extrinsic('imresize')
行,我会收到新错误
应为逻辑、char、int、fi、single 或 double。找到一个 mxArray。MxArrays 从对 MATLAB 解释器的调用中返回,并且在表达式中不受支持。它们只能用于赋值的右侧,并作为外部函数的参数。
寻址第 11 行,使用if
.
为什么?是否可以完全禁用代码生成,例如在模型级别?