fprintf
Использование с varargin
для этого:
f = @(varargin) fprintf('var%i= %i\n', [(1:numel(varargin));[varargin{:}]])
f(5,6,7,88)
var1= 5
var2= 6
var3= 7
var4= 88
Формат Я использовал это: 'var%i= %i\n'
. Это означает, что он сначала напишет var
, тогда %i
говорит, что он должен ввести целое число. После этого он должен написать =
, а затем новый номер: %i
и новую строку \n
.
Он выберет целое число в нечетных положениях для var%i
и целые числа в четных положениях для действительного числа. Так как линейный индекс в MATLAB переходит в столбец для столбца, мы помещаем вектор [1 2 3 4 5 ...]
сверху и содержимое переменной во второй строке.
Кстати: Если вы на самом деле хотите от формата, указанного в вопросе, пропустите \n
:
f = @(varargin) fprintf('var%i= %i', [(1:numel(varargin));[varargin{:}]])
f(6,12,3,15,5553)
var1= 6var2= 12var3= 3var4= 15var5= 5553
Кроме того, вы можете change the second %i
to floats (%f
), doubles (%d
) etc.
Если вы хотите использовать фактические имена переменных var1, var2, var3, ...
на вашем входе тогда я могу только сказать одно: Не надо! Это ужасная идея. Используйте ячейки, структуры или что-то еще, кроме пронумерованных имен переменных.
Просто для того, чтобы быть плавным: не используйте вывод из этого в MATLAB в сочетании с eval
! eval
is evil. Mathworks фактически предупреждает вас об этом в официальной документации!
Вы не собираетесь использовать выходы с 'eval' позже, правильно ...? –
Пожалуйста, подумайте о принятии одного из ответов, если они решили вашу проблему. Это галочка в левой части ответа. Благодаря! :) –