0
私はまだmatlabを勉強していますが、今日は練習のために、それらの引数に+、*のような操作を行う可変数の引数を持つ関数を書くことにしました。私は質問があります:スイッチ命令の引数としてシンボルを渡す方法は?
この関数の引数としてシンボルを渡す方法はありますか?例えば
:関数(+、B、3)の助けを
おかげ。
私はまだmatlabを勉強していますが、今日は練習のために、それらの引数に+、*のような操作を行う可変数の引数を持つ関数を書くことにしました。私は質問があります:スイッチ命令の引数としてシンボルを渡す方法は?
この関数の引数としてシンボルを渡す方法はありますか?例えば
:関数(+、B、3)の助けを
おかげ。
@beakerは既に述べたように、文字列(char配列)または関数を渡すことができます。 varargin/narginを使用して処理できる引数の可変数。例を参照してください。
function [result] = myfunc(op, varargin)
if strcmp(class(op), 'function_handle')
result = op([varargin{:}]);
return;
end
switch(op)
case '+'
result = sum([varargin{:}]);
case '*'
result = prod([varargin{:}]);
otherwise
error('unexpected input');
end
end
>> myfunc(@sum, 1, 2, 3, 4)
ans =
10
>> myfunc('+', 1, 2, 3, 4)
ans =
10
私はそう信じていませんが、多分あなたは、あなたが実際に我々は適切な代替 – Suever
あなたは、文字、または関数ハンドルを渡すことができますいずれかを判断するのに役立つことができます何をしようとしての例を提供する場合。あなたがしようとしていることは不明です。 – beaker