一、 映射表的概念
在了解映射表的概念之前,我們需要先明確映射的概念,映射是一個數學名詞,它指的是集合與集合之間的一種對應關系:集合A中的每一個元素都在集合B中存在與之對應的元素。
下面引入LabVIEW中的映射表的概念:由多對“鍵-值”對組成的條目集合。其中所有鍵都是唯一的,而值可以不唯一,每一個鍵都必須有一個與之對應的值。
由此可見鍵和值之間存在映射關系,由多對“鍵-值”條目組成的集合就是映射表,鍵和值可以分別為任意數據類型。映射表也可以稱為字典,因為查找映射表類似于查字典,“鍵”通常被用于查找“值”。
二、映射表的API
生成映射表:使用輸入的所有“鍵-值”對創建一個映射表。對于具有重復鍵的條目,該函數僅包括結果映射表中的最后一個條目。各個鍵的數據類型必須相同,各個值的數據類型也必須相同。
插入映射表:給已有映射表中插入一個新的條目后輸出結果映射表。如果鍵已包含在映射表中,則此函數將用新的關聯值替換鍵的原始值。
從映射表中刪除:從已有映射表中刪除指定條目后輸出結果映射表。當鍵存在時返回該鍵相關聯的值。
在映射表中查找:檢查映射表是否包含指定鍵的條目,并返回鍵的關聯值。如果不包含指定鍵則會返回T。
讀取映射表最大值和最小值:映射表中的鍵可以看作一個集合,該API可以獲取到所有鍵集合中的最大元素和最小元素。
群體大?。?/strong>返回輸入的群體的元素個數,即群體的大小。(該API集合和映射表通用)
空群體:當輸入的群體中元素個數為零時返回T。(該API集合和映射表通用)
二、 映射表的相關知識
1、雖然變體屬性也可以用作字典來查找值,但是映射表更靈活,因為鍵和值都可以是任何LabVIEW數據類型。對于變體屬性,鍵必須是字符串,值必須是變體。相比變體屬性,映射表更加不容易出錯。對于映射表,LabVIEW在編輯時返回連線錯誤,因為值接收指定的數據類型。對于變體屬性,LabVIEW在運行時返回接線錯誤,因為該值是接受任何數據的變體類型。
2、映射表可以通過循環的索引輸入訪問到每個條目,條目是以簇的形式呈現(簇中包含鍵和值兩個元素),并且再通過一次索引輸出轉換成一個簇數組,如下圖所示:
3、映射表操作(插入、刪除、查找等)相對于數組操作(插入、刪除、索引)映射表操作消耗的資源會更多,但是它的執行速度和效率遠高于數組操作。
三、群體數據類型的應用場景
1、快速計算:雖然集合和映射表作為群體數據結構具備有序性會額外消耗部分內存開銷,但是它們可以對數據進行更快地搜索、插入、更改以及刪除等操作,所以十分適合應用在需要快速計算的應用場景下;
2、防止重復寫入:由于群體數據類型中元素或條目具有唯一性,這使得它可以防止重復寫入,保證數據的唯一性,所以十分適合應用在需要放置重復寫入的應用場景下。
3、查找特定數據:在LabVIEW 2019之前,存儲有序數據或有對應關系的數據時會選擇簇或數組,并且操作簇或數組來完成特定數據的查找,但現在可以用集合與映射表來替代。
四、拓展:
集合與映射表都屬于群體數據結構,而群體數據結構除了LabVIEW中有,在其他很多編程語言中也有。比如python中有Set(集合)和Dict(字典)數據結構,它就對應了LabVIEW中的集合與映射表。Python和LabVIEW的群體數據結構對應關系如下:
審核編輯:劉清
-
LabVIEW
+關注
關注
1987文章
3667瀏覽量
330831 -
python
+關注
關注
56文章
4821瀏覽量
85668
原文標題:知識分享 | LabVIEW中的群體數據類型(二)
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
瑞薩RA系列MCU FSP庫開發實戰指南(09)存儲器映射

用labview進行坐標映射
imx6ul開發板的靜態地址映射表在哪幾個文件中
ARM如何通過USB分析等不同映射的原理方式訪問外設資源
MMU存儲管理單元的工作原理是什么?如何實現其流程呢
STM32H7 DMA請求映射表記錄在哪里可以找到呢?
語義網中基于機器學習的本體映射研究
凈全輻射表/四分量凈輻射傳感器簡介

評論