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{:});