Matlab 2013b で codegen を使用して mex ファイルに変換したい test (test.m) という名前の関数があります。ここで、B はゼロ行列 p_z (サイズ 128 * 128) を含む構造体であり、plastset は空の行列 (0*0) です。次のコードを変換するとエラーが発生します: 「行」が指定されていない場合、入力はベクトルでなければなりません。可変サイズの入力の場合、行 'actset = setxor ( actset , plastset );' では、1 番目または 2 番目の次元のいずれかが 1 の定数長でなければなりません。以下のコードで
以下の関数を mex ファイルに正常に作成するためのコードを修正するのを手伝ってください。
function [] = test(B)
p_z = B.p_z;
plastset = B.plastset;
if isempty(B.plastset)
plastset = zeros(1,0);
end
if isempty(find( p_z > 0, 1 ))
actset = zeros(1,0);
else
actset = find( p_z > 0 );
actset = setxor ( actset , plastset );
end