請問各位大大^^
假設我有五個頻率點,如1.8、1.81、1.82、1.83、1.84,其中的1.81、1.82、1.83我想略過不顯示其所對應到的值!!我是利用For Loop寫的利用if then else可是還是寫不出~~~不曉得有否有略過不顯示的這種指令??
例如:1.8-->1、1.81-->2、1.82-->3、1.83-->4、1.84-->5我想讓中間的三個值不顯示或者是不處理三個頻率點直接跳到1.83才顯示
謝謝各位
如果單純只是這個例子我會用case structure去處理
可以將那5點轉成string接到case selector
或者在case st.外加上for loop, 用index去區分
如果你還有更多的數據的話 , 你就要找出去略過的規律性再去處理
謝謝~~~^^
由於我的是多組資料,且資料是由儀器抓下的~~~~所以是不固定的~~~所以才想說是否有略過不處理的指令~~~或者是否有一些技巧性技術可以處理!
略過不處理總也還是有條件 , 否則labview怎麼知道你要略過哪些呢?
或許你可以多貼一些資料上來 , 這樣大家比較好幫你想如何去處理
謝謝
我在此舉一個簡單的例子:如下
test.vi


我主要是要使Time的1、2不顯示值,也就是將Time的0、3所對應的Amptiude做線性的連接。也就是當布林為False時做線性的連接。
謝謝^^
afu38462.9656944444


我只在你的程式後面加了一個簡單的判斷....
你舉的例子還是太單純...本來是想要你把儀器傳的資料完整的傳上來
你再看看吧, 不知道有沒有幫助
[QUOTE=afu]由於我的是多組資料,且資料是由儀器抓下的~~~~所以是不固定的~~~所以才想說是否有略過不處理的指令~~~或者是否有一些技巧性技術可以處理![/QUOTE]
或許你的問題其實跟你所發問的是不相同的。你的chart的array是接收從loop輸出的嗎?因為loop會幫你做index,然後輸出array。
舉例來說,如果你的loop跑100次,依照你的需求,裡面可能只有80比數據是你想要顯示在圖表上的,但是如果你叫loop自動幫你建立array的話,他一定會幫你建成1x100的array而不是1x80的array。解決方式就是停用loop自動幫你建立array的功能。你要自己用程式去建立array。
不知道你聽的懂我說的嗎?
嗯嗯,謝謝
我大概知道您的意思了,不過因為我在寫掃頻的動作,所以應該會用到loop吧?所以才想說有否有辦法可以從loop中,利用一些計巧可以略過loop中的某一次執行項。
由於我的程式寫的滿爛的,亂拉了一堆線,所以不易看懂,所以才沒放上來,那我就在此放上我的檔案,其中所有的*.s1p都是要放在c:\內
final13.vi,而其中的P64120.s1p在1.98GHz的值是-99.9,所以我是想在執行到值為-99.9的頻率點能略過,這是data檔(*.s1p)s1p.rar
在介面上只要輸入開始、終止、間距頻率,主要的功能是在比對RF中的反射係數
還缺少很多subvi喔 , 像lin.vi, Chang.vi, .....
綜合Benjamin跟我講的...
如果你要略過-99.99的值, 就參考我上面寫的範例一樣就可以
但是重點就是你不要用loop的index array輸出
你自己用build array去build你的data
只要是-99.99, 你就不要把那筆資料加到array中
嗯,謝謝你
不過我還不是很清楚您的意思,因為我那些*.s1p的檔案是由儀器中抓下來的,所以一定要傳到loop中,所以才想說要用一些特別的方法處理掉-99.99的頻率點,而產生-99.99主要是因為儀器的error所造成的。
這是我的subvisubvi.rar,我會再研究一下您的程式,謝謝幫忙囉^^
你的程式真的拉的有點亂 , 如果你還有時間的話 , 我建議你重新好好整理一下
這樣對以後要用你的程式的人或者你以後再回來看程式會比較容易
否則我相信你1個月以後就不知道自己當初在寫什麼了
因為你的程式有些設定我不知道要如何用, 因此搞不太清楚要從哪邊加入判別式
總之, 我覺得benjamin和我其實已經講的蠻清楚了
應該是你對loop的shift register及enable index不了解
也不太了解要如何使用array function去build你要的data
你可能要先對這兩者的使用再稍微有深入一點的了解
到時候你應該就不會不知道我們在說什麼了