Я написал функцию, которая берет имена и значения входных переменных и записывает их в файл. например.
a = 10;
b = 100;
writevars('file.txt',a,b);
дает мне файл file.txt
, который содержит:
\def\a{\num{10}}
\def\b{\num{100}}
Теперь хотелось бы иметь возможность передавать все переменные, найденные с помощью команды who
. Например, если who
возвращает:
a b z
Я бы хотел использовать writevars
, как если бы я позвонил writers('file.txt', a, b, z)
.
Основная проблема, с которой я столкнулся, заключается в том, что writevars использует inputname
... (временные переменные не будут работать, например, writevars('file.txt', 100)
не работает, так как в файле нет имени, которое нужно дать).
ОТВЕТ
var_names = who;
for i = 1 : length(var_names)
evalin('caller',['writevars(''file.txt'', ' char(var_names(i)) ' )']);
end