Возможно что-то вроде:
function dealinto(prefix, cellarray)
% DEALINTO
% USAGE
% dealinto('a', {'one', 'two', 'three'})
% Causes these variables to be set in the base workspace:
% a1: 'one'
% a2: 'two'
% a3: 'three'
for i=1:numel(cellarray)
assignin('base', [prefix num2str(i)], cellarray{i});
end
Если вы замените 'base' на 'caller' в приведенном выше, переменные будут записаны в рабочую область вызывающей функции. Однако я не рекомендую делать это по той же причине, по которой я бы не рекомендовал вызывать LOAD без выходных аргументов внутри функции: произвольная запись в рабочее пространство работающей функции не очень безопасна.
Если вам нужно что-то подобное для использования внутри функций, но вы не хотите просто писать переменные, вы можете сделать то же самое, что и LOAD, то есть дать вам структуру, поля которой являются переменными, которые вы бы хотели в противном случае производят.