feedback 相關疑問

explanation_shift register .vi (12.6 KB)
各位前輩好

shift register 跟 feedback 都具有資料暫移的功能

做了一個簡單的基本範例筆記 目標是顯示暫存依序數字
但feedback部分出現一些問題 (在運行模式highlight下)
1.feed back 無法跟shift register有一樣的功能
2.feed back 輸出部分似乎不是有暫存的功能而是以順序進行排列

您好,建議問問題的時候,請明確點出問題,最好加個標點符號,因為有些句子沒有標點符號,會看不出來是疑問句還是肯定句,舉例
1.今天放假
2.今天放假?
這樣看的人才會知道你是要問問題,還是要分享資訊喔!!

回到您的問題,下圖是您的程式,我加上了loop count以及break point來顯示問題在哪裡,然後移掉Tab方便看結果。

迴圈第1圈,loop count = 0,cycle = 5,此時內部loop可以跑5次,此時shift register依照您的用法,可以顯示最近5筆暫存值依序排列,而外部迴圈因為沒有限制,實際上會一直跑,只是我用break point讓他停在第1圈,這時候output array會有1的值在array第0個element,因為是insert 1 to empty array’s index 0

迴圈第2圈,loop count = 1,cycle = 5,此時內部loop結果一樣,但是output array的結果變了,原因是程式的寫法只控制了index跟element,卻沒有保留第一個loop的output array ,所以每一圈都會reset回empty array,從第2圈開始就無法insert成功了,因為要insert的index>=1,所以不存在,output array永遠都是empty array。

您想要的功能,應該要如下圖,把output array 接回 insert into array的input,然後feedback node 給個initial 的empty array。(不過沒有限制停止,小心array爆掉)

結論:沒事不要用feedback node,我是幾乎沒用過,因為大部分都有其它方式取代,而且我覺得feedback node容易造成閱讀不便,除非真的有特殊需求,不然shift register相對好很多:slight_smile:

1個讚

先謝謝,Dogthief同仁回覆.
下次發文會多多注意發文格式.
你的回覆內容對我有很大的幫助,謝謝.

1個讚