自分で別の言語に移植するシミュレーションを作成しています。したがって、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')
と、新しいエラーが発生します
logical、char、int、fi、single、または double のいずれかが必要です。mxArray が見つかりました。MxArrays は MATLAB インタープリターへの呼び出しから返され、式内ではサポートされません。これらは代入の右側で、外部関数の引数としてのみ使用できます。
行 11 のアドレス指定、if
.
なんで?モデル レベルなどで、コード生成を完全に無効にすることはできますか?