1

自分で別の言語に移植するシミュレーションを作成しています。したがって、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.

なんで?モデル レベルなどで、コード生成を完全に無効にすることはできますか?

4

1 に答える 1