Каков правильный стиль для доступа нескольких фигур к одним и тем же данным? - PullRequest
1 голос
/ 16 сентября 2011

В настоящее время я выполняю рефакторинг связки старого кода Matlab (до нового ola Matlab), и код GUI - беспорядок.

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

Старый код решает эту проблему, используя глобальную структуру для хранения всехданных для отображения вместе с метаданными (в основном это информация о размере, необходимом для отображения текущих данных).

Мой вопрос заключается в том, является ли это правильным, стилистически, способом сделать это втекущая версия Matlab.Я рассмотрел возможность объединения данных в один класс дескриптора и метаданных в другой, а затем передать их обоим фигурам в графическом интерфейсе, но я не знаю, стоит ли добавленная инкапсуляция беспорядочно добавленных аргументов.

Существуют ли общие правила стиля для принятия таких решений в программировании на Matlab GUI?

1 Ответ

4 голосов
/ 16 сентября 2011

Есть несколько способов сделать это. Вы можете использовать getappdata и setappdata, чтобы связать данные с отдельной цифрой:

%# Associate some data to the main figure handle...
setappdata(main_FH, 'myData', data);

%# Retrieve that data from the main figure handle
myData = getappdata(main_FH, 'myData');

%# check if some app data exists for main_FH
validAppData = isappdata(main_FH, 'myData');

Вы также можете использовать set(FH, 'UserData', myData)get() тоже), хотя для каждого дескриптора есть только одно свойство UserData; Вы можете установить его в struct и использовать isfield() вместо isappdata(), чтобы увидеть, существует ли поле в myData.

Наконец, есть guidata, но это по сути оболочка для ___appdata для GUI GUI.

Сводная информация о способах передачи данных на на веб-сайте MathWorks .

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...