2013-08-20 53 views
0

我製作了一個程序,我嘗試進行自動測量。該計劃迄今爲止工作,但我不知道這是否是正確的方式來做到這一點。使用GUI調用的函數更新matlab GUI

該方案包括兩個功能:

  • meassure (措施是單個裝置,繪製數據並將其保存到Excel文件)
  • measureAutomatically(使用矩陣用0和1,移動對於矩陣中的所有設備,如果設備矩陣中有1,它將觸發測量功能。使用參數:Excel文件名和圖形/軸的處理位置來繪圖)

I還添加了whi的GUI ch設備矩陣生成。按鈕會觸發measureAutomatically函數。

圖形用戶界面應該顯示當前的測量(實時,不是完成後),如果測量成功或不成功,應該將另一個軸上矩形的顏色從灰色更改爲綠色/紅色(如指示器是什麼做的一個給定的點)

到目前爲止,我給測量函數軸的句柄來繪製和格式的測量功能的情節。

我不知道如何處理矩形的更新。此刻,measureAutomatically函數獲取測量結果,然後查找矩形(通過標記findobj)並更改顏色。

我想保持獨立於GUI的功能(現在情況並非如此)。所以我應該在GUI中調用一個函數來改變矩形?但我該怎麼做?或者什麼是正確的方式來做這樣的事情。我仍然是matlab的初學者,但我不想讓它工作,但也想學習正確的方法來做到這一點。

回答

0

我肯定會作出這樣的接受測量的狀態的功能,做任何需要事後

function updateStatus(status, isGUI) 
    if isGUI 
     if status 
      % Change the rectangle color to green 
     else 
      % Change the rectangle color to red 
     end 
    else 
     if status 
      % Do something else 
     else 
      % Do something else 
     end 
    end 

您也可以直接通過手柄的對象圖UserData或使用setappdata/getappdata和參考對象,而不是通過findobj尋找他們。但這是優先事項。

+0

謝謝,但我認爲我還沒有完全知道這將如何工作。這個函數可能在GUI m文件或單獨的文件中?然後通過measureAutomatically函數調用? – josh21

+0

你可以把這個函數放到你的GUI m文件中,或者單獨放在同一個文件夾中(或者在Matlab路徑中)。同樣,這是一個優先事項,所有功能是在一個文件中,還是在單獨的文件中。我更喜歡把它們放在單獨的文件中。 'updateStatus'將由'measureAutomatically'函數調用。我已經包含了'isGUI'選項,可以用來切換狀態的一些不同的指示(例如,將其寫入文件)。你可以實現任何邏輯,在你接收到測量狀態後該怎麼做。 – peterk