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