Что ж, если вы наберете этот вызов функции в командной строке или запустите клавишу F9 (чтобы она сохранялась в истории), вы можете прочитать файл history.m
и получить последнюю команду в виде строки.
fid = fopen(fullfile(prefdir,'history.m'),'rt');
while ~feof(fid)
lastcmd = fgetl(fid);
end
fclose(fid);
Затем получите часть аргумента:
arg_str = regexp(lastcmd, '\w+\((.+)\)','tokens','once');
arg_str = strrep(arg_str{:},'''','''''');
ОБНОВЛЕНИЕ :
Другая идея.Если вы вызываете эту функцию из другого скрипта или функции (m-файла), вы можете использовать DBSTACK , чтобы вернуть имя m-файла и текущий номер строки:
SI = dbstack;
filename = SI(end).file;
lineNo = SI(end).line;
Тогда вы можетеСледуйте той же методике, что и в первом решении, чтобы прочитать эту строку из m-файла и получить часть аргумента.
В отличие от первого решения, это не сработает, если запустить из командной строки или в режиме ячейки редактора.