一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LabVIEW統(tǒng)一查詢工具包 過濾器模式Por的介紹

jf_NKOETB7n ? 來源:LabVIEW的編程之道 ? 作者:LabVIEW的編程之道 ? 2022-11-28 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、過濾器模式Pro簡介

前已經(jīng)寫過過濾器模式,這里再寫一篇有以下幾個方面原因:

1、前一章的算法、數(shù)據(jù)和數(shù)據(jù)規(guī)則沒有分離,這里設(shè)計一個可用的工具包;

2、C#里面有統(tǒng)一查詢語言(LINQ),里面包含數(shù)據(jù)查詢、集合查詢、以及排序,這篇文章也來開發(fā)一個LabVIEW的統(tǒng)一查詢工具包,實現(xiàn)以上功能。

功能包含以上內(nèi)容:

1、數(shù)據(jù)查詢;

2、集合運算:交集、并集;

3、數(shù)據(jù)排序:升序和降序;

以上功能可以任意組合。

二、過濾器模式Pro-過濾

下圖為我們設(shè)計的UML關(guān)系類圖:

e69fbdde-6eac-11ed-8abf-dac502259ad0.png

1、Abstract Filter過濾器框架:定義了過濾器過濾的基本規(guī)則

2、Abstract Data需要查詢的數(shù)據(jù)類型:只定義的一個tostring用于顯示數(shù)據(jù)

3、Abstract Rule定義了具體數(shù)據(jù)規(guī)則

下面開始編程

1、創(chuàng)建一個工程命名為LLINQ,意思是LabVIEW的LINQ。

2、創(chuàng)建3個類分別命名為Abstract Filter、Abstract Data和Abstract Rule,在Abstract Filter私有數(shù)據(jù)中添加Abstract Rule和Abstract Data數(shù)組;并創(chuàng)建其數(shù)據(jù)成員訪問。

e6c0c51a-6eac-11ed-8abf-dac502259ad0.png

e6e06e74-6eac-11ed-8abf-dac502259ad0.png

3、在Abstract Rule的私有數(shù)據(jù)數(shù)據(jù)中添加兩個Abstract Data分別命名為RData1、RData2,并創(chuàng)建其數(shù)據(jù)成員訪問。

e6fb4ee2-6eac-11ed-8abf-dac502259ad0.png

e70a07ca-6eac-11ed-8abf-dac502259ad0.png

5、在Abstract Rule中創(chuàng)建一個動態(tài)VI命名為Filter rule。

e723d65a-6eac-11ed-8abf-dac502259ad0.png

e73ffd30-6eac-11ed-8abf-dac502259ad0.png

6、在Abstract Filter中添加靜態(tài)類DoFilter,這個規(guī)則比較簡單,只要是符合規(guī)則就留下,不符合規(guī)則就剔除。

e758999e-6eac-11ed-8abf-dac502259ad0.png

e7794ca2-6eac-11ed-8abf-dac502259ad0.png

下邊寫個實際DEMO來演示下過濾模式

6.1、創(chuàng)建VI命名為Filer DEMO

6.2、創(chuàng)建一個類命名為Double data繼承至Abstract Data,在私有數(shù)據(jù)添加一個double類型數(shù)據(jù)。

6.3、創(chuàng)建一個類命名為Greate The 0.5繼承至Abstract rule,重寫Filer rule。

e792f27e-6eac-11ed-8abf-dac502259ad0.png

6.4、在AbstratFIler中添加數(shù)據(jù)和過濾規(guī)則,進行過濾,然后再取出數(shù)據(jù)

e7a01cb0-6eac-11ed-8abf-dac502259ad0.png

e7c0c7bc-6eac-11ed-8abf-dac502259ad0.png

三、過濾器模式Pro-集合運算

1、并集

在Abstract Filter中創(chuàng)建靜態(tài)方法Uniton,做法分三步

1.1、設(shè)置兩個過濾器作為輸入;

1.2、找出結(jié)合2中與集合1相同的部分并剔除;

1.3、合并剔除后的集合數(shù)據(jù)并保存到結(jié)果數(shù)據(jù)中。

e7f5e636-6eac-11ed-8abf-dac502259ad0.png

2、交集

在Abstract Filter中創(chuàng)建靜態(tài)方法Intersection,做法分兩步

2.1、設(shè)置兩個過濾器作為輸入;

2.2、取出結(jié)合2中與集合1相同的部分,保存到輸出結(jié)果中。

e8230936-6eac-11ed-8abf-dac502259ad0.png

2、集合范例

下面是一個兩個數(shù)組,一個是0--9的整數(shù),一個是5--14的整數(shù),求他們的交集和并集。

先創(chuàng)建一個整類繼承至Abstract Rule,私有數(shù)據(jù)類型為整型,重寫數(shù)據(jù)規(guī)則Filer Rule:

e839d6f2-6eac-11ed-8abf-dac502259ad0.png

3、下面是具體的使用代碼:

e8590fcc-6eac-11ed-8abf-dac502259ad0.png

4、前面板結(jié)果

e870beb0-6eac-11ed-8abf-dac502259ad0.png

四、過濾器模式Pro-冒泡排序

數(shù)組排序是一個經(jīng)常使用的功能,LabVIEW自帶的數(shù)組排序功能只能對數(shù)值類型數(shù)據(jù)進行排序,那么簇,指定類中特定數(shù)據(jù)排序呢,每次都需要自己寫非常麻煩,影響編程效率。下面寫個通用的冒泡排序算法:

從最底部兩個元素開始比價,如果上一個元素大于下一個元素就交換位置,然后向上挪一個位置,重復以上操作直到最頂端。最大值就像泡泡浮出水面一樣,再從最底端到頂端第二個元素重復上面動作,依次循環(huán)

e897d2ca-6eac-11ed-8abf-dac502259ad0.png

e8ae5ac2-6eac-11ed-8abf-dac502259ad0.png

e8cc42da-6eac-11ed-8abf-dac502259ad0.png

這個是冒泡迭代的位置。

e8e4acf8-6eac-11ed-8abf-dac502259ad0.png

具體編碼如下程序框圖:

e907a94c-6eac-11ed-8abf-dac502259ad0.png

建一個double比較的數(shù)據(jù)規(guī)則

e9256a90-6eac-11ed-8abf-dac502259ad0.png

創(chuàng)建個DEMO生成一組隨機數(shù)看看運行結(jié)果:

e93fd010-6eac-11ed-8abf-dac502259ad0.png

e9577260-6eac-11ed-8abf-dac502259ad0.png

運行下結(jié)果達到預期,我們把數(shù)據(jù)數(shù)量改成1000,2000看看運行時間

e973813a-6eac-11ed-8abf-dac502259ad0.png

e9947d9a-6eac-11ed-8abf-dac502259ad0.png

上面可以看到1000次運行時間為3.39秒,2000次運行時間為13.7秒,這個時間感覺太長了,能優(yōu)化排序算法將時間縮短不?

看下一章的分治排序法。

五、過濾器模式Pro-分治排序

冒泡排序算法的時間復雜度為O(n^2)空間復雜度為O(1)

我們使用分治排序時間復雜度為O(nlog(n))空間復雜度為O(log(n))

簡單介紹下原理:

固定第一個數(shù),從最后和最前搜索,當后面大于第一個數(shù),前面小于第一個數(shù)時就交換搜到的數(shù)據(jù)。當兩個搜索指針相遇時,就交換第固定數(shù)和相遇數(shù)。交換后結(jié)果為:相遇位置數(shù)左邊數(shù)小,比右邊的數(shù)大。

e9baecf0-6eac-11ed-8abf-dac502259ad0.png

將其按照相遇位置前后分成兩組:分別重復上面內(nèi)容直到分治完成。

e9d97bac-6eac-11ed-8abf-dac502259ad0.png

下邊開始編寫分治算法代碼,圖中有需要調(diào)用相同的算法需要用到遞歸,我們把主體算法和遞歸部分分離,創(chuàng)建一個VI命名為Devide Core,VI屬性設(shè)置如下:

e9f69b74-6eac-11ed-8abf-dac502259ad0.png

ea04e742-6eac-11ed-8abf-dac502259ad0.png

分治核心代碼

ea20be0e-6eac-11ed-8abf-dac502259ad0.png

ea40e01c-6eac-11ed-8abf-dac502259ad0.png

ea5a234c-6eac-11ed-8abf-dac502259ad0.png

ea6d9f44-6eac-11ed-8abf-dac502259ad0.png

測試后1000次時間為0.58秒,2000次時間為2.20秒,比冒泡排序有了很大的改善,那么有沒有更快的優(yōu)化方案呢?看下邊異步分治排序法。

e6822012-6eac-11ed-8abf-dac502259ad0.png

五、過濾器模式Pro-異步分治排序

eaa8f1d4-6eac-11ed-8abf-dac502259ad0.png

如上圖所示,我們第一次分組后,組一執(zhí)行完后再執(zhí)行組二,組一和組二的數(shù)據(jù)互不干擾,那么我們將異步執(zhí)行組一和組二,以空間換時間。

具體代碼改造如下:

1、將數(shù)據(jù)轉(zhuǎn)換為引用類型;

2、將組一和組二異步執(zhí)行。

具體代碼如下:

異步分治排序算法:

eac2ddf6-6eac-11ed-8abf-dac502259ad0.png

異步分治核心:

eadee2c6-6eac-11ed-8abf-dac502259ad0.png

測試代碼:

eb2d48da-6eac-11ed-8abf-dac502259ad0.png

eb4a2590-6eac-11ed-8abf-dac502259ad0.png

eb6c9648-6eac-11ed-8abf-dac502259ad0.png

eb8084a0-6eac-11ed-8abf-dac502259ad0.png

有上面例子可以看出,使用異步分治排序算法,排序速度有了指數(shù)級別提升。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    2002

    文章

    3670

    瀏覽量

    335904
  • 過濾器
    +關(guān)注

    關(guān)注

    1

    文章

    439

    瀏覽量

    20388

原文標題:LabVIEW的編程之道—過濾器模式Por

文章出處:【微信號:LabVIEW的編程之道,微信公眾號:LabVIEW的編程之道】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    激光焊接技術(shù)在焊接過濾器的工藝應(yīng)用

    過濾器作為工業(yè)設(shè)備、汽車及電子產(chǎn)品的關(guān)鍵部件,其制造質(zhì)量直接影響系統(tǒng)性能和壽命。激光焊接技術(shù)憑借其精密、高效與可靠的特性,正逐步成為過濾器焊接工藝的核心解決方案,解決了傳統(tǒng)焊接方法難以克服的挑戰(zhàn)
    的頭像 發(fā)表于 07-10 15:08 ?107次閱讀
    激光焊接技術(shù)在焊接<b class='flag-5'>過濾器</b>的工藝應(yīng)用

    最先進的過濾器監(jiān)測@SENSIRION

    AndriesBosma(氣體流動產(chǎn)品經(jīng)理),ManuelEckstein(暖通空調(diào)大客戶經(jīng)理)在需要清潔空氣的地方,空氣過濾器通常就在不遠處。在過去十年里,過濾行業(yè)在過濾技術(shù)方面取得了巨大進步
    的頭像 發(fā)表于 07-08 12:05 ?106次閱讀
    最先進的<b class='flag-5'>過濾器</b>監(jiān)測@SENSIRION

    節(jié)并傳感完成超千萬元融資,加速高端過濾器國產(chǎn)化進程

    膜材研發(fā)迭代工作,助力破局高端過濾器”卡脖子”難題, 加速高精度膜過濾器國產(chǎn)替代進程。 節(jié)并傳感(Gibeing)位于江蘇省蘇州市,成立于2022年,致力于微孔膜及生物過濾相關(guān)耗材的研發(fā)及銷售。目前公司主要產(chǎn)品為生物制藥
    的頭像 發(fā)表于 05-16 18:17 ?437次閱讀
    節(jié)并傳感完成超千萬元融資,加速高端<b class='flag-5'>過濾器</b>國產(chǎn)化進程

    STM32G0B1VE芯片的CAN過濾器分為掩碼模式和列表模式,在列表模式下,可過濾多少個ID呢?

    STM32G0B1VE芯片的CAN過濾器分為掩碼模式和列表模式,在列表模式下,可過濾多少個ID呢?芯片手冊中未有詳細說明
    發(fā)表于 03-12 07:16

    神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計數(shù)據(jù)怎么查看?

    無法觀察神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計數(shù)據(jù)
    發(fā)表于 03-06 07:10

    解析ECAN-E02單過濾器CAN硬件過濾

    什么是CAN總線?CAN(ControllerAreaNetwork)總線是種用于車輛電子設(shè)備之間通信的標準協(xié)議。CAN過濾器是用來過濾CAN總線上收到的消息,從而確保只處理特定的數(shù)據(jù)幀。在CAN
    的頭像 發(fā)表于 01-16 19:35 ?387次閱讀
    解析ECAN-E02單<b class='flag-5'>過濾器</b>CAN硬件<b class='flag-5'>過濾</b>

    Labview聲音和振動工具包示例文件Sound Level

    Labview 聲音和振動工具包示例文件,聲壓測試,有模擬和DAQ兩個文件。
    發(fā)表于 01-05 09:15 ?3次下載

    英邁儀器在線過濾器:精準過濾,守護精密分析儀器

    在精密分析儀器的使用過程中,任何微小的顆粒干擾都可能對實驗結(jié)果產(chǎn)生重大影響,甚至導致設(shè)備損壞。為了確保分析的準確性和儀器的長期穩(wěn)定運行,Instrumax(英邁儀器)精心研發(fā)了全新的在線過濾器,為
    的頭像 發(fā)表于 12-26 14:03 ?689次閱讀

    USB音頻過濾器驅(qū)動程序安裝

    電子發(fā)燒友網(wǎng)站提供《USB音頻過濾器驅(qū)動程序安裝.pdf》資料免費下載
    發(fā)表于 12-19 14:28 ?0次下載
    USB音頻<b class='flag-5'>過濾器</b>驅(qū)動程序安裝

    【教程】講解CH32FV系列32位CAN硬件過濾

    簡介32位硬件過濾器與16位硬件過濾器樣具有兩種模式32位標識符模式與32位屏蔽位模式。32位
    的頭像 發(fā)表于 11-08 01:05 ?696次閱讀
    【教程】講解CH32FV系列32位CAN硬件<b class='flag-5'>過濾</b>

    文理解布隆過濾器和布谷鳥過濾器

    是否存在集合中 。布隆過濾器并不存儲集合中的所有元素,而是存儲元素的哈希表示,因此犧牲了些精確性: 當布隆過濾報告某元素在集合中不存在時,那么它定不存在;報告某元素存在時,允許出現(xiàn)
    的頭像 發(fā)表于 11-07 10:10 ?1238次閱讀
    <b class='flag-5'>一</b>文理解布隆<b class='flag-5'>過濾器</b>和布谷鳥<b class='flag-5'>過濾器</b>

    CH32FV系列CAN設(shè)備過濾器配置

    簡介CAN作為總線通信協(xié)議,在總線上可能會有大量的數(shù)據(jù)同時傳輸,適當?shù)?b class='flag-5'>過濾機制可以提升數(shù)據(jù)處理的效率,節(jié)省處理器的資源。通過配置CAN過濾器定義自己的數(shù)據(jù)接收規(guī)則,只接收和處理符合規(guī)程的CAN數(shù)據(jù)
    的頭像 發(fā)表于 10-11 08:03 ?769次閱讀
    CH32FV系列CAN設(shè)備<b class='flag-5'>過濾器</b>配置

    優(yōu)化TPS62097 Output過濾器

    電子發(fā)燒友網(wǎng)站提供《優(yōu)化TPS62097 Output過濾器.pdf》資料免費下載
    發(fā)表于 10-08 11:19 ?0次下載
    優(yōu)化TPS62097 Output<b class='flag-5'>過濾器</b>

    PLC工業(yè)過濾器數(shù)據(jù)采集物聯(lián)網(wǎng)解決方案

    換熱器的銅管,降低換熱率,影響整個冷卻系統(tǒng)效果。 因此往往需要加裝工業(yè)過濾器以去除原料或產(chǎn)品中的雜質(zhì),確保產(chǎn)品質(zhì)量。對此,物通博聯(lián)提供PLC工業(yè)過濾器數(shù)據(jù)采集系統(tǒng),以實現(xiàn)過濾器的智能化監(jiān)控與管理,及時發(fā)現(xiàn)
    的頭像 發(fā)表于 09-23 10:37 ?592次閱讀
    PLC工業(yè)<b class='flag-5'>過濾器</b>數(shù)據(jù)采集物聯(lián)網(wǎng)解決方案

    康謀分享 | ADTF過濾器全面解析:構(gòu)建、配置與數(shù)據(jù)處理應(yīng)用

    送數(shù)據(jù)。接下來,將分享ADTF中創(chuàng)建和使用過濾器,包括設(shè)置輸入輸出針腳(Pins)、配置觸發(fā)器(Triggers)以及處理數(shù)據(jù)樣本(Samples)。、過濾器基礎(chǔ)過
    的頭像 發(fā)表于 09-18 09:42 ?2925次閱讀
    康謀分享 | ADTF<b class='flag-5'>過濾器</b>全面解析:構(gòu)建、配置與數(shù)據(jù)處理應(yīng)用