2016-05-17 43 views
0

顯示對象我有一個函數爲一計時器如下Matlab的 - 在圖形上

HH = 0; MM = 0; SS = 0; 
timer = sprintf('%02d:%02d:%02d',HH,MM,SS); 
for p = 1:86400 
    SS = SS + 1; 
    if SS == 60 
     MM = MM + 1; 
     SS = 0; 
     pause(0.01) 
    end 
    if MM == 60 
     HH = HH + 1; 
     MM = 0; 
     pause(0.1) 
    end 
    HH; 
end 
disp(timer) 

我怎樣才能得到這顯示在圖上,同時不斷地更新。無法使用plot()或set()函數使其工作。

+0

所以你想定時器的值不斷更新,那麼你的圖形類型是什麼?它是爲繪製圖形還是僅僅想顯示時間值而生成的? – goldIs

回答

2

您可能希望根據您希望計時器的外觀來調整此示例的細節,並注意我只是爲每秒鐘放置了一個pause(0.1),因此您可以按照指示快速觀察它,在你的例子中。您還可以使用text()函數的不同參數來調整時鐘的大小/顏色。

f = figure; 
HH = 0; MM = 0; SS = 0; 
timer = sprintf('%02d:%02d:%02d',HH,MM,SS); 
text(0.5,0.5,timer); %% adjust location of clock in graph using the first two arguments: (x,y) coordinates 

for p = 1:86400 
    SS = SS + 1; 
    pause(0.1); %% pause a fixed amount for each clock tick 
    if SS == 60 
     MM = MM + 1; 
     SS = 0; 
    end 
    if MM == 60 
     HH = HH + 1; 
     MM = 0; 
    end 
    timer = sprintf('%02d:%02d:%02d',HH,MM,SS); %% construct time string after all adjustments to HH, MM, SS 
    clf; %% clear previous clock display 
    text(0.5,0.5,timer); %% re-plot time to figure   
end 
+0

感謝您的回覆,當我運行你的函數時會引發一個錯誤,即文本(0.5,0.5,timer);下標指數必須是真正的正整數或邏輯。試圖修改這個許多不同的東西,但仍然提高相同的錯誤或該索引超過矩陣尺寸。 – Vladamir

+0

解決〜忘了清除上一個腳本中的變量。 – Vladamir

+0

你正在使用什麼版本的MATLAB?這聽起來像你可能意外地將「文本」定義爲一個數組......我會嘗試「清除所有」,然後再次運行它。 – gariepy