新聞中心

EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 學(xué)習(xí)LabVIEW(五)——反饋節(jié)點(diǎn)與迭代運(yùn)算

學(xué)習(xí)LabVIEW(五)——反饋節(jié)點(diǎn)與迭代運(yùn)算

作者: 時(shí)間:2017-01-09 來源:網(wǎng)絡(luò) 收藏
有時(shí)候我們需要執(zhí)行如下的迭代運(yùn)算
x = init();
for i in range(30):
x = f(x)
print x

我想了想,這種運(yùn)算在G語言中大概可以利用反饋節(jié)點(diǎn)來實(shí)現(xiàn)。反饋節(jié)點(diǎn)的基本用法很簡單,把一個(gè)運(yùn)算節(jié)點(diǎn)的輸出端通過反饋節(jié)點(diǎn)連到輸入端即可實(shí)現(xiàn)一個(gè)基本的迭代過程。
迭代運(yùn)算是一種非常常見的運(yùn)算。比如之前在《學(xué)習(xí)LabVIEW(四)——MATLAB script節(jié)點(diǎn)》中提到的look and say序列,就可以利用迭代的方式,由序列的第一個(gè)元素出發(fā),經(jīng)過n次迭代,得到第n 1個(gè)元素的取值。著名的Python Challenge的Level10的通關(guān)口令正是look and say序列第31個(gè)元素所包含的數(shù)字的個(gè)數(shù)。之前我們是用Python來做的,見《xialulee大戰(zhàn)pythonchallenge——level10》?,F(xiàn)在有了feedback節(jié)點(diǎn),我們也可以在LabVIEW中完成計(jì)算了。

xialulee大戰(zhàn)pythonchallenge——level10(續(xù)):用LabVIEW Matlab通關(guān)
這里使用迭代的方式計(jì)算look and say的元素,每一次迭代所使用的算法和之前一樣,是《快使用sort-diff-find組合技》中的sort-diff-find。具體的MATLAB代碼如下所示:


為了計(jì)算第31個(gè)元素,需要進(jìn)行30次循環(huán),使用LabVIEW提供的循環(huán)結(jié)構(gòu)即可。而為了實(shí)現(xiàn)迭代計(jì)算,將MATLAB script的輸出端口通過反饋節(jié)點(diǎn)連接至輸入端口,并將反饋節(jié)點(diǎn)初始化為為長度為1,元素值為1的數(shù)組,即可進(jìn)行計(jì)算。待循環(huán)結(jié)束后,計(jì)算最終數(shù)組的長度,并將長度輸出到界面上的一個(gè)數(shù)值顯示控件即可。完整程序如下:


程序的運(yùn)行結(jié)果為:


正是我們需要的結(jié)果。


評(píng)論


技術(shù)專區(qū)

關(guān)閉