Matlab workscape

MaD_ExperT

Как в .m файле обращаться к переменным, которые хранятся в текущем Workspace-e?
Можно такое сделать в принципе?

Vladu

Как в .m файле обращаться к переменным, которые хранятся в текущем Workspace-e?
Можно такое сделать в принципе?
Можно
help assign
help evalin

Примеры
function setvlist(vlist, val)
% SETVLIST - set all varibles in the vlist to val
% vlist - a cell array of varibles name
% val - some vlue
% USAGE:
% setvlist(who, 5)
if nargin<2
val = 0;
end
for q=1:numel(vlist)
assignin('caller', vlist{q}, val);
end

function dispvlist(vlist)
% DISPVLIST - print all variables in the workspace
% USAGE:
% setvlist(who)
if nargin<2
val = 0;
end
for q=1:numel(vlist)
evalin('caller', vlist{q});
end

MaD_ExperT

Спасибо!

Dazik

А не проще обращаться по, собственно, именам этих global переменных?
Или неизвестно, что лежит в этом workspace?

Vladu

А не проще обращаться по, собственно, именам этих global переменных?
Эти переменные не global
Или неизвестно, что лежит в этом workspace?
Да. Так можно, если очень хочется, организовать вызов "функции по адресу".

Dazik

Хмм. Действительно.
Я почему-то считал, что делая
load workspace.mat
в скрипте, я получаю глобальные переменные.
А они вполне себе локальные.
Спасибо.
Оставить комментарий
Имя или ник:
Комментарий: