2013-04-18 138 views
0

在Matlab中使用GUIDE製作的GUI中。我遇到了一個問題,在使用Load()函數加載.MAT文件時,所有手柄都會更改值。這意味着如果我有一個我想在我的GUI上使用的按鈕。我的程序會相信它的手柄是例如Matlab GUIDE GUI使用Load()函數處理值更改?

handles.button1 =190.082 

當在現實的唯一途徑,我可以通過不同的手柄是未知訪問按鈕更多的是。所以如果它的未知讓我們看看它的新手柄是什麼。

findobj('Tag','button1') = 227.0093 

正如你所看到的,這些數字是完全不同的。爲什麼句柄值被改變超出了我。由於句柄發生變化,我不能再像前面的代碼段中所寫的那樣使用set()函數了。比如我有使用Load()何時改變

set(handles.button1, 'Enable', 'off'); 

to 

set(findobj('Tag','button1'),'Enable','off'); 

沒有人有一個解釋,爲什麼會出現這個問題呢? 有沒有一種可行的解決方案,而不是每次想要使用它時都不得不爲每個對象找到句柄?

+0

你爲什麼要加載句柄值?他們會改變是很正常的。 – HebeleHododo

+0

如果你這樣解釋我的問題,我很抱歉。我不使用Load()加載句柄值。我正在使用Load()從另一個程序加載一些外部變量。在使用Load()函數時。我的程序改變了它的所有句柄。 –

+1

這可能是因爲你的.mat文件中有句柄結構。不要加載它,或從.mat文件中刪除它。 – HebeleHododo

回答

0

.MAT文件方便地還有一個句柄變量,它覆蓋了我當前的句柄。