想为 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.

最佳答案

解决办法是:

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

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

使用匿名函数的快捷方式是
fp = @(str, varargin) fprintf(str, varargin{:});

关于Matlab - 将 varargin 传递给接受可变数量参数的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12558819/

10-13 03:46