Matlab - передать varargin функции, принимающей переменное число аргументов

Хотите написать сокращенное выражение для 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.

Ответ 1

Решение:

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

Ячейный массив расширяется в список, разделенный запятыми, используя синтаксис {:}.

Ярлык с использованием анонимной функции

fp = @(str, varargin) fprintf(str, varargin{:});