필터 지우기
필터 지우기

Passing name-value arguments to a function that calls feval

조회 수: 8 (최근 30일)
Alex Alex
Alex Alex 2022년 4월 13일
댓글: Voss 2022년 4월 14일
Hello,
Is it possible to pass name-value arguments to a function that calls feval? If yes, what is the syntax? The problem looks like this:
% I want to pass any number of name-value pairs here
r = frun(@fA,argA1=2)
% ========================================================================
function r = frun(fh,varargin)
% Function that calls feval
r = feval(fh,varargin);
end
% ========================================================================
function resA = fA(namedArgs)
% Test function A
arguments
namedArgs.argA1 (1,1) double = 1
namedArgs.argA2 (1,1) double = 1
namedArgs.argA3 (1,1) double = 1
end
resA = namedArgs.argA1 + namedArgs.argA2 + namedArgs.argA3;
end
Thanks

채택된 답변

Voss
Voss 2022년 4월 14일
Use varargin{:} to send the contents of varargin to the feval function as a comma-separated list of arguments.
% I want to pass any number of name-value pairs here
r = frun(@fA,argA1=2)
r = 4
% ========================================================================
function r = frun(fh,varargin)
% Function that calls feval
r = feval(fh,varargin{:});
end
% ========================================================================
function resA = fA(namedArgs)
% Test function A
arguments
namedArgs.argA1 (1,1) double = 1
namedArgs.argA2 (1,1) double = 1
namedArgs.argA3 (1,1) double = 1
end
resA = namedArgs.argA1 + namedArgs.argA2 + namedArgs.argA3;
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Argument Definitions에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by