0
我仍然在學習matlab,今天只是爲了練習,我決定寫一個帶有可變數量參數的函數,它將在這些參數上執行像+,*這樣的操作。我有問題:如何在交換指令中傳遞一個符號作爲參數?
有什麼辦法可以傳遞符號作爲這個函數的參數嗎?
例如:功能(+,A,B,3)
感謝您的幫助。
我仍然在學習matlab,今天只是爲了練習,我決定寫一個帶有可變數量參數的函數,它將在這些參數上執行像+,*這樣的操作。我有問題:如何在交換指令中傳遞一個符號作爲參數?
有什麼辦法可以傳遞符號作爲這個函數的參數嗎?
例如:功能(+,A,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