2013-10-31 84 views
0

我有下面的代碼會下載從鏈接的CSV文件,然後保存爲一個格式的文件:定時器在MATLAB重複的代碼段,每隔幾分鐘

urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Sep.csv','Weather Data.csv'); 
data= readtext('Weather Data.csv'); 

我要下載此文件每5分鐘一班。我的腳本的其他部分使用了來自文件的更新數據,因此我還希望計算和其他部分的程序每5分鐘自動更新一次新文件信息。

matlab中的計時器功能調用一個函數,我寧願做一個循環格式,因爲我的計算還沒有保存爲特定的功能。

我怎樣才能達到這個作爲某種循環或定時器?

回答

1

最簡單的方法可能是置於暫停命令,pause(t)暫停腳本t秒,所以你可以有

while(1) 
    tic 
    urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Sep.csv','Weather Data.csv'); 
    data= readtext('Weather Data.csv'); 
    % run the rest of the code that you need to run on the data you have downloaded 
    T=toc; 
    pause(300-T) 
end 

您可以通過按Ctrl + C終止循環,這將停止碼。

希望幫助

+0

親愛的大衛,對於上面的代碼示例會是什麼的說法是,因爲我不是在引用了迴路中的任何整數值?謝謝你的幫助。我會在暫停(t)上詳細閱讀。 – loco

+0

@loco嗯,這取決於你想要你的代碼真的做什麼,我只是用'for'作爲通用循環。如果你想無限期地運行它,那麼你可以用'while(1)'代替'for ...',並且包含一些終止條件。如果你的代碼需要一些時間來運行,那麼這可能會導致問題,因爲它會運行代碼,然後等待5分鐘,而不是運行代碼,然後等待5分鐘。我會編輯我的答案來解決這個問題。 – David

+0

噢,好的。我希望代碼每5分鐘重複一次。即,腳本/程序正在運行,並不斷更新新信息並使用新提取的信息執行計算。目前它需要大約17秒的腳本來下載和存儲數據。謝謝。 – loco

相關問題