Использование Matlabs сохранить в функциях - PullRequest
4 голосов
/ 16 ноября 2011

Можно ли использовать команду сохранения Matlab внутри функции для хранения переменных рабочей области?

Рассмотрим следующий сценарий: у меня есть куча переменных в рабочем пространстве Matlab, и я хочу, чтобы все, что начиналось с "a" и "b" в файле .mat. Конечно это работает:

save('test.mat','a*','b*')

но я хочу иметь переменную имя файла. Функция, которую я написал:

function save_with_name(name)
save(name,'a*','b*')

не работает, потому что save_with_name не видит переменные рабочей области. Есть ли решение, которое я могу использовать?

1 Ответ

5 голосов
/ 16 ноября 2011

Вам необходимо оценить save в базовом рабочем пространстве.

function save_with_name(name)
expression = ['save(''', name, ''',''a*'',''b*'')'];
evalin('base',expression);

Двойные кавычки ('') в выражении необходимы для разрешения самого символа кавычки (').Таким образом, команда, которую вы ищете: evalin

...