MATLAB Answers

0

「出力引数 "<変数名>"(および他の引数もおそらく)は "<関数名>" の呼び出し中に代入さ​れていません。」のエ​ラーが出るのはなぜで​すか?

MATLAB プログラムを実行すると、下記のエラーが発生します。
出力引数 "<変数名>"(および他の引数もおそらく)は "<関数名>" の呼び出し中に代入されていません。
理由と回避方法を教えてください。

Tags

No tags entered yet.

Products

1 Answer

Answer by MathWorks Support Team on 20 Feb 2019 at 5:00
 Accepted Answer

このエラーが発生する原因は、メインのコードでは、呼び出した関数から出力引数を返すように定義されていますが、その関数から出力されようとした時、その出力引数が関数内に存在しないことが原因です。
下記の例では、sub 関数が呼び出されますが、特定の条件(in <= 0.5 の場合)には、出力引数 out が未定義となり、エラーが発生します。
(main1.m)
x = rand(1);
y = sub(x);
(sub.m)
function out = sub(in)
if in > 0.5
out = 1;
end
一般的には、関数内で出力引数の1つの名前のスペルを間違えたか、関数の出力引数の1つに値を代入しし忘れていることによって発生している可能性があります。
警告またはエラーメッセージにリストされている関数の最後の行(上記例では、sub 関数の最後の行の end ) にブレークポイントを置き、MATLAB を停止し、出力引数である変数がワークスペース内に存在するかを確認してください。
引数が存在しない場合は、すべての条件において、該当の出力引数が定義されるようにコードを見直してください。

  0 Comments

Sign in to comment.