国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

一、過(guò)濾器模式Pro簡(jiǎn)介

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

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

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

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

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

2、集合運(yùn)算:交集、并集;

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

以上功能可以任意組合。

二、過(guò)濾器模式Pro-過(guò)濾

下圖為我們?cè)O(shè)計(jì)的UML關(guān)系類(lèi)圖:

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

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

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

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

下面開(kāi)始編程

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

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

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

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

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

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

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

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

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

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

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

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

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

下邊寫(xiě)個(gè)實(shí)際DEMO來(lái)演示下過(guò)濾模式

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

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

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

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

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

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

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

三、過(guò)濾器模式Pro-集合運(yùn)算

1、并集

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

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

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è)置兩個(gè)過(guò)濾器作為輸入;

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

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

2、集合范例

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

先創(chuàng)建一個(gè)整類(lèi)繼承至Abstract Rule,私有數(shù)據(jù)類(lèi)型為整型,重寫(xiě)數(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

四、過(guò)濾器模式Pro-冒泡排序

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

從最底部?jī)蓚€(gè)元素開(kāi)始比價(jià),如果上一個(gè)元素大于下一個(gè)元素就交換位置,然后向上挪一個(gè)位置,重復(fù)以上操作直到最頂端。最大值就像泡泡浮出水面一樣,再?gòu)淖畹锥说巾敹说诙€(gè)元素重復(fù)上面動(dòng)作,依次循環(huán)

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

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

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

這個(gè)是冒泡迭代的位置。

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

具體編碼如下程序框圖:

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

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

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

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

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

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

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

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

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

上面可以看到1000次運(yùn)行時(shí)間為3.39秒,2000次運(yùn)行時(shí)間為13.7秒,這個(gè)時(shí)間感覺(jué)太長(zhǎng)了,能優(yōu)化排序算法將時(shí)間縮短不?

看下一章的分治排序法。

五、過(guò)濾器模式Pro-分治排序

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

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

簡(jiǎn)單介紹下原理:

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

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

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

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

下邊開(kāi)始編寫(xiě)分治算法代碼,圖中有需要調(diào)用相同的算法需要用到遞歸,我們把主體算法和遞歸部分分離,創(chuàng)建一個(gè)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

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

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

五、過(guò)濾器模式Pro-異步分治排序

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

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

具體代碼改造如下:

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

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

具體代碼如下:

異步分治排序算法:

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

異步分治核心:

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

測(cè)試代碼:

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ù)級(jí)別提升。

審核編輯:郭婷

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

    關(guān)注

    2017

    文章

    3688

    瀏覽量

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

    關(guān)注

    1

    文章

    444

    瀏覽量

    20972

原文標(biāo)題:LabVIEW的編程之道—過(guò)濾器模式Por

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    激光焊接機(jī)在焊接過(guò)濾器的工藝流程

    激光焊接機(jī)在過(guò)濾器制造中扮演著至關(guān)重要的角色,其以高精度、高效率及低變形的特點(diǎn),顯著提升了過(guò)濾器的性能與可靠性。整個(gè)工藝流程環(huán)環(huán)相扣,對(duì)最終產(chǎn)品的質(zhì)量起著決定性作用。下面來(lái)看看激光焊接機(jī)在焊接過(guò)濾器
    的頭像 發(fā)表于 01-06 15:17 ?192次閱讀
    激光焊接機(jī)在焊接<b class='flag-5'>過(guò)濾器</b>的工藝流程

    eForce無(wú)線通信軟件開(kāi)發(fā)工具包兼容WLAN模塊WKR612AA1

    近期,eForce株式會(huì)社宣布,其面向嵌入式設(shè)備的無(wú)線通信軟件開(kāi)發(fā)工具包(μC3-WLAN SDK)現(xiàn)已兼容 KAGA FEI 生產(chǎn)的無(wú)線局域網(wǎng)(WLAN)模塊"WKR612AA1"。
    的頭像 發(fā)表于 09-24 15:16 ?1220次閱讀

    請(qǐng)問(wèn)rt_thread中如何使用CAN硬件過(guò)濾器

    目前我使用rt_thread版本為v4.1.1,目前使用了兩路can,想要對(duì)兩路can的數(shù)據(jù)進(jìn)行硬件過(guò)濾處理,降低CPU負(fù)荷。 過(guò)濾的ID為: #define
    發(fā)表于 09-19 06:36

    rt-thread studio里面如何設(shè)置CAN過(guò)濾器

    這個(gè)是我配置的過(guò)濾器,想問(wèn)下大家這個(gè)設(shè)置的為啥不起作用啊,我的環(huán)境是rt-thread studio,然后版本是5.1,板子是野火的STM32H743
    發(fā)表于 09-10 08:11

    ART-PI 使用CAN硬件過(guò)濾器打開(kāi)后接收中斷異常的原因?

    開(kāi)啟硬件過(guò)濾器后,出現(xiàn)如下斷言異常,不開(kāi)啟硬件過(guò)濾器,接收數(shù)據(jù)正常 (hdr < can->config.maxhdr && hdr
    發(fā)表于 09-10 07:10

    rt-thread studio里面如何設(shè)置CAN過(guò)濾器呢?

    這個(gè)是我配置的過(guò)濾器,想問(wèn)下大家這個(gè)設(shè)置的為啥不起作用啊,我的環(huán)境是rt-thread studio,然后版本是5.1,板子是野火的STM32H743
    發(fā)表于 08-22 07:45

    宏集案例 | 時(shí)間繼電器在真空過(guò)濾器上的應(yīng)用

    近年來(lái),隨著國(guó)家對(duì)資源、能源有效利用率的要求越來(lái)越高,對(duì)環(huán)境保護(hù)和水處理的要求也越來(lái)越嚴(yán)格,因此有大量的固液分離問(wèn)題需要解決。真空過(guò)濾器是是由負(fù)壓形成真空過(guò)濾的固液分離機(jī)械。用過(guò)濾介質(zhì)把容器分為上
    的頭像 發(fā)表于 08-08 18:12 ?594次閱讀
    宏集案例 | 時(shí)間繼電器在真空<b class='flag-5'>過(guò)濾器</b>上的應(yīng)用

    三電系統(tǒng)低壓輔助電源:車(chē)規(guī)電容是 12V/24V 電路的 “紋波過(guò)濾器

    ,尤其是作為“紋波過(guò)濾器”的功能,直接關(guān)系到低壓電路的可靠性與整車(chē)安全性。本文將深入解析車(chē)規(guī)電容的技術(shù)特性、行業(yè)應(yīng)用現(xiàn)狀及未來(lái)發(fā)展趨勢(shì)。 ### 、紋波電流的挑戰(zhàn)與車(chē)規(guī)電容的解決方案 低壓輔助電源的輸入通常來(lái)自高壓動(dòng)力電池通
    的頭像 發(fā)表于 07-30 16:14 ?796次閱讀

    全氟過(guò)濾支撐網(wǎng)可提高液體過(guò)濾性能降低半導(dǎo)體和微電子制造成本

    隨著微電子科技不斷的發(fā)展,其中半導(dǎo)體、電子、高純化學(xué)品處理和制藥行業(yè)對(duì)于過(guò)濾的精度和流通量提出了更高的要求,這相當(dāng)于對(duì)過(guò)濾器材的濾芯提出了更苛刻的技術(shù)條件。
    的頭像 發(fā)表于 07-28 13:51 ?486次閱讀
    全氟<b class='flag-5'>過(guò)濾</b>支撐網(wǎng)可提高液體<b class='flag-5'>過(guò)濾</b>性能降低半導(dǎo)體和微電子制造成本

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

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

    最先進(jìn)的過(guò)濾器監(jiān)測(cè)@SENSIRION

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

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

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

    THS7372 具有1-SD和3全高清濾波器和6dB增益的4通道視頻放大器技術(shù)手冊(cè)

    使用革命性的,硅-鍺(SiGe) BiCom3X 互補(bǔ)過(guò)程制造, THS7372是款低功耗, 單電源, 2.7-V 至 5-V, 4 通道集成視頻緩沖器。 它包含個(gè)SDTV 過(guò)濾器和3個(gè)固定全
    的頭像 發(fā)表于 05-09 09:27 ?990次閱讀
    THS7372 具有1-SD和3全高清濾波器和6dB增益的4通道視頻放大器技術(shù)手冊(cè)

    只需在COLLABORATION 3Dfindit中篩選過(guò)濾所需的零部件即可

    高效率。 COLLABORATION 3Dfindit中的過(guò)濾功能允許有針對(duì)性地顯示首選零件。這意味著無(wú)需長(zhǎng)時(shí)間搜索,就能快速找到常用的組件。 啟用首選零件過(guò)濾器 只要您為第個(gè)組件指定了零件號(hào),就可以使用
    發(fā)表于 04-23 15:52

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

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