2016-06-28 8 views
1

Matlabは将来のリリースでnarchk関数を削除しています。代わりにnarginckを使用するようにいくつかのコードを変更しようとしています。今すぐnargchkを使用すると、出力は文字列になり、私は自分自身のエラーメッセージを表示するためにifステートメントに渡すことができます。matlabでnarginchkを使ってカスタムエラーメッセージを生成する方法はありますか?

if ~isempty(nargchk(min, max, nargin)) 
    error('custom error message') 
end 

narginchkのようなものが自動的にエラーではない文字列を与えるので、あなたがnargchkおよび関連するカスタムエラーメッセージを供給することはできませんnarginchk

+0

try/catch文の内部でそれをラップし、カスタムエラーメッセージを提供するだろうか?ちょうど「ナルギン」を使って自分自身をチェックしてください。 – Suever

+0

実際にはif文には書いていない条件が増えています。それは私がやっていることですが、もしnarginchkが動かなければ – Elenasto

答えて

1

とカスタムエラーメッセージを与える方法がある場合、私は思っていました機能。

nargchkを使用する必要はありません。デフォルト値などは必要ないため、単にnarginの値をチェックしてください。

if nargin > max || nargin < min 
    error('custom error message'); 
end 

代わりに、あなたはif文を排除するためにassertを使用することができます。

assert(nargin <= max && nargin >= min, 'Custom Error Message'); 

あなたが本当にこれらの関数のいずれかを使用したい場合は、なぜnargchk` `使用

try 
    narginchk(min, max, nargin) 
catch ME 
    throw(MException(ME.identifier, 'my custom message')) 
end 
+0

私はもちろんそれを行うことができますが、実際にそこに書いていないif文にはいくつか条件があります。だからコードはちょっと醜いものに終わる。もしnarginchkの回避策がなければ、私は何をしてもかまいません。 – Elenasto

+0

@SharanBanagiriあなたはいつも、その機能をどこかにカプセル化して物事をきれいにするサブファンクションを作ることができます。しかし、いいえ、 'narginchk'にカスタムエラーを指定する方法がありません – Suever

+0

@SharanBanagiri私は' try'/'catch'を使って別のアプローチを追加しました – Suever

関連する問題