2015-05-21 2 views
1

Я ищу простой способ сохранить текущее состояние моего графического интерфейса и снова загрузить это сохраненное состояние. Я знаю, что есть видео для этого (http://blogs.mathworks.com/videos/2010/12/10/how-to-save-and-restore-state-of-a-gui-in-matlab/), но почему-то это не работает на моем компьютере.Matlab - простой способ сохранить всю фигуру/графический интерфейс

Я думал, что-то вроде этого: (я использовал GCF, потому что я не знаю «mainhandle» для всего моего GUI)

%Save Data 
currentdata = getappdata(gcf); 
uisave('currentdata',date); 

%Load Data 
[filename,pathname]=uigetfile({'*.mat'},'Select input file'); 
load([pathname,filename]); 

Проблема с этим способом является, что открывает сохраненные данные в новой фигуре, а не в текущей, из которой я решил ее открыть.

Мне также было интересно, можно ли установить папку (которая добавлена ​​в путь matlab) в качестве папки для сохранения/загрузки.

Благодарим за помощь! Klaus

ответ

1

С вашего currentdata хранятся все ручки вашего графического интерфейса, в том числе ручка главной фигуры графического интерфейса пользователя, поэтому при ее загрузке откроется новая фигура.

Что было сделано в упомянутом видео: просто сохраните поля/данные, которые вам необходимо оставить/перезагрузить в последующем сеансе.

Таким образом, вы сохраняете эти конкретные поля в ручках графического интерфейса и перезагружаете их по одному, или вы можете использовать exchange functions, упомянутый в комментарии к видео.

+0

Спасибо за ваш ответ! Нет ли более простого способа настроить uisave или что-то еще, чем uiremember/uirestore? – klaus

+0

Уирмамбер/восстановление также, кажется, всегда восстанавливает последнее состояние, но я хочу, чтобы иметь возможность сохранять разные состояния (некоторые интересные случаи) и иметь возможность загружать каждый из них после другого – klaus

+0

вы прочитали код этих функций? Вы можете изменить часть, которая сохраняет состояния в 'mem_file', и обернуть код в кнопках CallbackFcn в вашем графическом интерфейсе, чтобы вы могли решить, какие состояния вы хотите сохранить/загрузить. Они предоставили инструменты, поэтому вам не нужно переписывать их, но как использовать инструменты - это ваша работа. – scmg

Смежные вопросы