14

想写一个简写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.
4

1 回答 1

21

解决方案是:

function fp(str, varargin)
    fprintf(str, varargin{:});
end

使用{:}语法将元胞数组扩展为以逗号分隔的列表。

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

fp = @(str, varargin) fprintf(str, varargin{:});
于 2012-09-24T04:21:59.413 回答