MATLAB中如何用迴圈實現精確延時

2021-06-29 06:27:25 字數 752 閱讀 2039

前面在用matlab控制硬體的時候,在每次採集的過程中需要等一段固定的時間再採集訊號。所以這裡就會需要用到延時函式來精確延時,首先想到的就是函式pause(time),但執行時發現錯誤,後來弄清楚了,pause的作用是暫停,而不是延時。在執行pause時,程式各個系統都暫停了,也要把我的採集硬體部分暫停,這就會產生衝突。

然後google後,發現還有乙個timer函式,查了help之後,發現這是乙個定時觸發器,每隔一定的時間,就會觸發制定函式,也不符合我的要求。

再想到既然查不到現成的函式,那就只能自己寫乙個迴圈函式來實現定時了。但如果只是單純的指定迴圈多少次的話,這不能起到精確定時的作用,因為同樣的**,在不同的電腦狀態和不同的配置的機器上跑出來的時間是不一樣的,所以模糊大概定個時勉強還行,如果說精確定時到0.1秒什麼的,肯定是不行的。

很明顯這個思路裡差乙個指示時間的**。聯想到平時計算程式耗時,經常會用到tic,toc,其中tic表示開始時間,toc表示結束時間。那可不可以用他們來實現?隨後我又仔細查了下matlab的help中tic和toc的用法,於是有了以下精確定時的程式:

tic;

for t = 0.001:0.001:time

while toc < t

endend

其中,time表示定時時間,單位為s。語句t=0.001:0.001:time中的步長表示計時的精度,此處為0.001ms。經過執行,程式達到了精確計時的預期效果。

如何用Matlab求極限

matlab的符號變數可以用於數學公式的推導和計算。這次分享乙個用matlab符號變數輔助求極限和判斷極限是否存在的小方法。如果我們要求下面表示式的極限 syms x 符號變數定義 待求的極限表示式 f sqrt 1 tan x sqrt 1 sin x x log 1 x x 2 求極限,更多的具...

如何用Matlab實現自適應濾波器!!!

直接上 吧,原理一大堆,自行了解即可!這是lms即自適應濾波器的matlab function yn,w,en lms xt,dn,m,mu itr length xt en zeros itr,1 誤差序列,en k 表示第k次迭代時預期輸出與實際輸入的誤差w zeros m itr 每一行代表乙...

如何用matlab啟動 exe檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!有時候,用matlab做實驗的時,在matlab執行的過程中,要啟動.exe程式,當然肯定不能指望用手動方式來啟動,那麼matlab是如何做到的呢?設c 程式為 include using namespace std int main 設生成的.e...