2012-09-24 49 views
10

想要为fprintf(..)写简写。Matlab - 将varargin传递给接受可变数量参数的函数

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

下不起作用:

function fp(str, varargin) 
    fprintf(str, varargin); 
end 

给予

Error using fprintf 
Function is not defined for 'cell' inputs. 

Error: Unexpected MATLAB expression. 

回答

15

解决的办法是:

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

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

使用匿名功能快捷方式是

fp = @(str, varargin) fprintf(str, varargin{:}); 
相关问题