想写一个速记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)