2013-04-18 4 views
0

Внутри графического интерфейса, который я создал с помощью 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()? Есть ли возможное решение вместо того, чтобы искать дескриптор объекта каждый раз, когда вы хотите его использовать?

+0

Почему вы загружаете значения дескриптора? Это нормально, что они будут меняться. – HebeleHododo

+0

Прошу прощения, если вы так толковали мой вопрос. Я не загружаю значения дескриптора с помощью Load(). Я использую Load() для загрузки некоторых внешних переменных из другой программы. При использовании функции Load(). Моя программа меняет все ручки. –

+1

Возможно, это связано с тем, что в вашем файле .mat есть структура ручек. Не загружайте его и не удаляйте из файла .mat. – HebeleHododo

ответ

0

Файл .MAT удобно также имел переменную ручек, в которой были записаны мои текущие ручки.

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