国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Matlab——Timer對象(多線程編程)

2019-11-11 00:55:22
字體:
供稿:網(wǎng)友

原文地址:http://www.ilovematlab.cn/thread-258845-1-1.html

今天突然想實現(xiàn)個多線程功能,尼瑪,被折磨透了。最終才找到了Timer對象和 Dynamic關于Timer的教程。感謝dynamic 大神的無私奉獻。但由于原文應用實例寫的比較特殊,因此單獨寫出一部分總結(jié)和一個實例做為自己的貢獻吧。

看了上述資料相信大家對Timer對象的各個屬性和其字段有一定了解,更多的信息可在幫助文件中獲得。這里再總結(jié)一下,仔細看Timer對象的句柄我們可以發(fā)現(xiàn),Timer其實由兩部分構(gòu)成:(一)對象本身的一些屬性,如ExecutionMode等(二)回調(diào)函數(shù)(Call Back Function)對于第一點,Timer對象實質(zhì)上與結(jié)構(gòu)體一樣,只需要掌握每個屬性及其字段名即可。可見Timer實現(xiàn)相關功能主要集中在回調(diào)函數(shù)上。那么與普通函數(shù)相比,回調(diào)函數(shù)有哪些不同呢?1.有默認的入?yún)bj和event。這一點一定要注意,在編寫回調(diào)參數(shù)時一定要在函數(shù)名末尾加(obj,event),否則出錯。2.當有其他入?yún)r,函數(shù)調(diào)用形式發(fā)生變化,需寫在同一元胞數(shù)組中。這兩點詳見Dynamic帖子第三部分,這里僅僅予以強調(diào)。接下來我將試圖以一個例子,用最最直白的語言告訴大家,尼瑪,這玩意到底怎么用。這是一個畫圓的腳本:alpha=0:pi/20:2*pi;%角度[0,2*pi]R=2;%半徑x=R*cos(alpha);y=R*sin(alpha);plot(x,y,'o-') %畫圖axis equal %平衡坐標軸那么如果我想做一個動畫,讓這個圓每隔一段時間畫一點點,應該怎么畫呢?這無疑要用到多線程控制。及我們介紹的Timer 對象。首先將上述腳本改編成回調(diào)函數(shù)TimeFcn:(本例中取名為CircleTask)function CircleTask(obj,event)event_time = datestr(event.Data.time);   %使用event對象的data的time屬性獲得系統(tǒng)當前時間,并轉(zhuǎn)換成字符串d=event_time(19:20);   %由于本身保存的是年月日小時分鐘秒,但我只需要秒的數(shù)據(jù),因此單獨取出d=str2double(d); %將字符串轉(zhuǎn)換成數(shù)字alpha=0:pi/20:pi/20*d;%角度[0,2*pi]ud=obj.UserData;  %使用obj對象的UserData屬性傳參R=ud;%半徑x=R*cos(alpha);y=R*sin(alpha);plot(x,y,'o-')axis equal以上就是整個回調(diào)函數(shù),將其保存并添加路徑。Timer對象的調(diào)用腳本為:t=timer('Name','CircleTimer',...'TimerFcn',@CircleTask,...'Period',1,...'ExecutionMode','fixedspacing');%本句解釋成中文就是:%t= timer(計時器名字是啥?,叫CircleTimer,要輸入的TimerFcn回調(diào)函數(shù)是啥? ,%用CircleTask這個函數(shù),每次隔多久運行?,一秒,%執(zhí)行時間間隔的模式是什么?,上次執(zhí)行完畢到這次執(zhí)行計時);ud=3;t.UserData=ud;start(t);以上代碼全部復制黏貼進command window按回車即可結(jié)束時運行: stop(t);在這里我想說明我回調(diào)函數(shù)前四步為何那么麻煩:由于matlab本身保存的double型時間包含年月日小時分鐘秒這些信息,而我需要的僅僅是“秒”這一信息,因此不得不先將matlab的double型時間轉(zhuǎn)換成文字,讀取秒后再轉(zhuǎn)換成數(shù)值。如果大家有更好的方法請務必要告訴我
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 民勤县| 吉木萨尔县| 天等县| 晴隆县| 镇巴县| 义马市| 恭城| 凤阳县| 增城市| 津市市| 青川县| 贵定县| 宜良县| 田东县| 兰考县| 临江市| 长兴县| 隆尧县| 阳城县| 陇川县| 肇州县| 五原县| 琼结县| 北安市| 娱乐| 竹山县| 张掖市| 广宗县| 石景山区| 德州市| 美姑县| 时尚| 公主岭市| 兴山县| 定南县| 色达县| 阜南县| 潼南县| 扎兰屯市| 宁陕县| 临江市|