請問程式中略過的問題?

請問各位大大^^

假設我有五個頻率點,如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才顯示

謝謝各位![](upload://lTkBiKYocE5J6EqRejuxVFrtSxf.gif)

如果單純只是這個例子我會用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
你可能要先對這兩者的使用再稍微有深入一點的了解
到時候你應該就不會不知道我們在說什麼了![](upload://wh1Jr0invKZTARRL2Hqlvc8do63.gif)