Внутри графического интерфейса, который я сделал с помощью GUIDE в Matlab. Я столкнулся с проблемой, когда при использовании функции Load() для загрузки файла .MAT все мои дескрипторы меняют значения. Это означает, что если бы у меня была кнопка, которую я хотел бы использовать в своем графическом интерфейсе. Моя программа будет полагать, что ее дескриптор, например,
handles.button1 =190.082
когда на самом деле единственный способ получить доступ к этой кнопке — через другой неизвестный дескриптор. Итак, если его неизвестно, давайте посмотрим, каким должен быть его новый дескриптор.
findobj('Tag','button1') = 227.0093
Как видите, эти цифры совершенно разные. Почему значения дескрипторов меняются, мне не понятно. Поскольку дескрипторы изменились, я больше не могу использовать функцию set(), как я писал в предыдущих разделах кода. Например, я должен изменить
set(handles.button1, 'Enable', 'off');
to
set(findobj('Tag','button1'),'Enable','off');
У кого-нибудь есть объяснение, почему эта проблема возникает при использовании Load()
? Есть ли реальное решение вместо того, чтобы искать дескриптор объекта каждый раз, когда вы хотите его использовать?