想要为fprintf(..)
撰写简写。
varargin
是一个单元格数组。那么如何将其传递给fprintf(..)
?后者只接受可变数量的数组。
以下不起作用:
function fp(str, varargin)
fprintf(str, varargin);
end
给予
Error using fprintf
Function is not defined for 'cell' inputs.
或
Error: Unexpected MATLAB expression.
答案 0 :(得分:17)
解决方案是:
function fp(str, varargin)
fprintf(str, varargin{:});
end
使用{:}
语法将单元格数组扩展为以逗号分隔的列表。
使用匿名函数的快捷方式是
fp = @(str, varargin) fprintf(str, varargin{:});