Matlab - 将varargin传递给接受可变数量参数的函数

Evg*_*eev 12 matlab

想写一个速记fprintf(..).

varargin是一个单元格数组.那我怎么把它传递给fprintf(..)?后者只接受可变数量的数组.

以下不起作用:

function fp(str, varargin)
    fprintf(str, varargin);
end
Run Code Online (Sandbox Code Playgroud)

给予

Error using fprintf
Function is not defined for 'cell' inputs.
Run Code Online (Sandbox Code Playgroud)

要么

Error: Unexpected MATLAB expression.
Run Code Online (Sandbox Code Playgroud)

Evg*_*eev 18

解决方案是:

function fp(str, varargin)
    fprintf(str, varargin{:});
end
Run Code Online (Sandbox Code Playgroud)

使用{:}语法将单元格数组扩展为逗号分隔列表.

使用匿名函数的快捷方式是

fp = @(str, varargin) fprintf(str, varargin{:});
Run Code Online (Sandbox Code Playgroud)