我还在学习matlab,今天只是为了练习我决定编写一个带有可变数量参数的函数,它会对这些参数执行+,*等操作。我有疑问:
有没有办法传递符号作为此函数的参数?
例如:function(+,a,b,3)
感谢您的帮助。
答案 0 :(得分:0)
正如@beaker已经说过的,你可以传递字符串(字符数组)或函数。可以使用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