乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MATLAB的Map數據類型

       goandlove 2019-01-22

      6  Map容器

      Map容器是MATLAB R2008b版本新增加的數據類型。

      6.1  Map數據類型介紹

      1.Map數據結構概述

      一個Map容器是一種快速鍵查找數據結構,可以提供多種方法對其中的個體元素進行尋訪。和MATLAB其他多數數據結構不同的是,一般的數據結構只能通過整數下標索引來進行尋訪,而一個Map的索引可以是任何數值或者字符串。

      對一個Map元素進行尋訪的索引稱為“鍵”(key)。這些鍵和其相對應的數據值存儲在Map中。一個Map的每一個條目都包括唯一的鍵和相對應的值。圖3-6所示是一個儲存降雨量統(tǒng)計數據的Map,此Map中的一個索引是字符串Aug”,對應于該月的降雨量37.3

      3-6  月降雨量統(tǒng)計數據Map容器示意圖

      Map中所使用的鍵不必像其他數組那樣限制在整數范圍內。一個鍵可以是以下任何一種類型

      (1)1xN字符串;

      (2)單精度或者雙精度實數標量;

      (3)有符號或者無符號標量整數。

      Map中存儲的數據可以是任何類型,包括數值數組、結構數組、元胞數組、字符串、對象,或者是其他Map。需要指出的是:當Map中存儲的是數值標量或者字符串數組的時候,該Map的內存的使用效率最高。

      2.Map類介紹

      一個Map實際上是MATLAB中稱作Map類的一個對象。它也是一個句柄對象,和其他的MATLAB句柄對象一樣。

      Map類的所有對象都具有3種屬性。用戶不能直接對這些屬性進行修改,而只能通過作用于Map類的函數進行修改。具體屬性說明見表3-9

      3-9  Map類屬性介紹

      屬    性

      說    明

      默認值

      Count

      無符號64位整數,表示Map對象中存儲的key/value對的總數

      0

      KeyType

      字符串,表示Map對象中包括的key的類型。KeyType可以是如下類型:雙精度,單精度,有符號或者無符號32位或64位整數。如果用戶添加了不支持的類型,如int8,MATLAB會自動將其轉換為雙精度類型

      char

      ValueType

      字符串,表示Map對象中包括的數據類型。如果一個Map中存儲的是同一種類型的數據,那么ValueType就會被設置成該類型。例如Map中的數據全部為字符串數組,那么ValueType就是'char'。在其他情況下,ValueType的值是 'any'

      any

      查看Map屬性的方法:在Map名字的后面加一個小數點'.',然后跟著寫屬性名即可,和結構數組的表現(xiàn)形式一樣。例如,為了查看名為mapObjMap中的鍵類型,可以使用如下命令: 

      mapObj.KeyType

      Map是一個句柄對象,因此,如果用戶創(chuàng)建了一個對象的副本,MATLAB并沒有創(chuàng)建一個新的Map,而是創(chuàng)建一個指定的已有Map的新句柄。如果用戶通過新句柄改變了Map中的內容,MATLAB同時也會將此改變應用于原始Map。但是用戶可以在不影響原始Map的情況下刪除新句柄。

      表3-10中的函數可以應用于Map類,具體的用法將在后面的章節(jié)中介紹。

      3-10 Map類函數

      函    數

      說    明

      函    數

      說    明

      isKey

      檢查Map是否包含指定鍵

      remove

      Map中刪除鍵和其相對應的值

      keys

      Map中所有鍵的名稱

      size

      Map的尺寸

      length

      Map的長度

      values

      Map中包括的值

      6.2  Map對象的創(chuàng)建

      Map是一個Map類中的對象,它由MATLAB中名為“容器”(containers)的一個包來定義,可以通過構造器函數來創(chuàng)建。在調用構造器創(chuàng)建Map對象的過程中,必須指定包的名字containers

      newMap = containers.Map(optional_keys_and_values)

      1.空Map對象的創(chuàng)建

      當用戶在調用Map構造器的時候,若未指定輸入變量,那么MATLAB將會創(chuàng)建一個空Map對象。例如:

      >> newMap = containers.Map()

      newMap =

        containers.Map handle

        Package: containers

        Properties:

              Count: 0

            KeyType: 'char'

          ValueType: 'any'

        Methods, Events, Superclasses

      空Map對象的屬性被設置為了默認屬性:

      (1) Count = 0

      (2) KeyType = 'char'

      (3) ValueType = 'any'

      一旦用戶創(chuàng)建了空Map對象,之后就可以使用keysvalues方法對其進行填充。

      2.初始化后的Map對象創(chuàng)建

      大多數情況下,用戶希望在創(chuàng)建Map對象的時候就對其進行初始化,至少對部分鍵和值進行初始化。用戶可以通過以下語法輸入一個或多個keys/values對。

      mapObj = containers.Map({key1, key2, ...}, {val1, val2, ...});

      對于鍵和值為字符串的情況,應注意將字符串放到單引號里面。例如,創(chuàng)建一個包括字符串鍵的Map對象可以使用以下命令:

      mapObj = containers.Map(...

         {'keystr1', 'keystr2', ...}, {val1, val2, ...});

      【例3-30】  創(chuàng)建圖3-6中所示降雨量統(tǒng)計數據的Map對象。

      >> k = {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', ...

       'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Annual'};

      >> v = {327.2, 368.2, 197.6, 178.4, 100.0,  69.9, ...

        32.3,  37.3,  19.0,  37.0,  73.2, 110.9, 1551.0};

      >> rainfallMap = containers.Map(k, v)

      rainfallMap =

       

        Map with properties:

       

              Count: 13

            KeyType: char

          ValueType: double

      從顯示的結果可以看出:Count屬性現(xiàn)在被設置成了Map中包括的keys/values 對的數目13,KeyType 屬性是char, ValueType 屬性則是double

      6.3  查看Map的內容

      Map中的每個條目都包括兩個部分:一個唯一的鍵和其相對應的值??梢酝ㄟ^使用keys函數查看Map中包括的所有鍵,同時還可以使用values函數查看所有的值。

      【例3-31】  Map內容的查看方法示例。

      創(chuàng)建一個名為ticketsMap對象,存儲航空公司機票的編號和乘客名字。

      >> ticketMap = containers.Map(...

          {'2R175', 'B7398', 'A479GY', 'NZ1452'}, ...

          {'James Enright', 'Carl Haynes', 'Sarah Latham', ...

           'Bradley Reid'});

      >> keys(ticketMap)            %  使用keys函數查看Map中包括的所有鍵

      ans =

          '2R175'    'A479GY'    'B7398'    'NZ1452'

      >> values(ticketMap)          %  使用values函數查看Map中包括的所有值

      ans =

          'James Enright'    'Sarah Latham'    'Carl Haynes'    'Bradley Reid'


        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多