2016-04-11 21 views
0

おそらくこれは皆さんにとっては非常に簡単な質問ですが、2入力以上の場合に動作するMATLABに関数を書き込もうとしています。私は解決策を探していましたが、私が望むものを正確に見つけることができませんでした。これは、ユーザーがちょうど入力としてx1,y1を置きますが、私はまた、ユーザがx1,y1,x2,y2を置いたときに働くと数字をプロットしたい場合、私は、関数が仕事をしたい、このmatlab関数の可変量入力

function myfunction(x1,y1,x2,y2) 

    plot(x1,y1) %// user just puts x1,y1 

    %// or 

    plot(x1,y1,x2,y2) %// user puts x1,y1,x2,y2 

end 

のようなものです。

答えて

1

vararginを使用して複数の入力を受け入れるか、existを使用して追加の入力を確認することができます。私は個人的にexistを好んでいます。なぜなら、入力引数は有用な名前を保持できるからです。あなたのシナリオでは

varargin

vararginの使用は、本当にあなたの機能を簡素化します。 varargin{:}を使用すると、すべての入力引数がplotに渡されます。ここ

function myfunction(varargin) 
    plot(varargin{:}) 
end 

exist

x2又はy2が関数に供給されない場合、existfalseをもたらします。

function myfunction(x1, y1, x2, y2) 

    if exist('x2', 'var') && exist('y2', 'var') 
     plot(x1, y1, x2, y2) 
    else 
     plot(x1, y1) 
    end 
end 
+0

単純なケースでは、「nargin」を使用することもできます。 – Dan

関連する問題