<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(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 來(lái)源:網(wǎng)絡(luò) 收藏
          有時(shí)候我們需要執(zhí)行如下的迭代運(yùn)算
          x = init();
          for i in range(30):
          x = f(x)
          print x

          我想了想,這種運(yùn)算在G語(yǔ)言中大概可以利用反饋節(jié)點(diǎn)來(lái)實(shí)現(xiàn)。反饋節(jié)點(diǎn)的基本用法很簡(jiǎn)單,把一個(gè)運(yùn)算節(jié)點(diǎn)的輸出端通過(guò)反饋節(jié)點(diǎn)連到輸入端即可實(shí)現(xiàn)一個(gè)基本的迭代過(guò)程。
          迭代運(yùn)算是一種非常常見(jiàn)的運(yùn)算。比如之前在《學(xué)習(xí)LabVIEW(四)——MATLAB script節(jié)點(diǎn)》中提到的look and say序列,就可以利用迭代的方式,由序列的第一個(gè)元素出發(fā),經(jīng)過(guò)n次迭代,得到第n 1個(gè)元素的取值。著名的Python Challenge的Level10的通關(guān)口令正是look and say序列第31個(gè)元素所包含的數(shù)字的個(gè)數(shù)。之前我們是用Python來(lái)做的,見(jiàn)《xialulee大戰(zhàn)pythonchallenge——level10》。現(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的輸出端口通過(guò)反饋節(jié)點(diǎn)連接至輸入端口,并將反饋節(jié)點(diǎn)初始化為為長(zhǎng)度為1,元素值為1的數(shù)組,即可進(jìn)行計(jì)算。待循環(huán)結(jié)束后,計(jì)算最終數(shù)組的長(zhǎng)度,并將長(zhǎng)度輸出到界面上的一個(gè)數(shù)值顯示控件即可。完整程序如下:


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


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


          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();