找回密码
 注册
关于网站域名变更的通知
查看: 555|回复: 2
打印 上一主题 下一主题

matlab map容器类型

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-10 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

7 k: V7 O7 F$ d4 B  K# Y9 k1 B, E1. map容器类型以及map类概述
3 K, @% E3 C9 x4 w# q6 e' z+ W' O2 G) O' p2 r/ e
map是将一个量映射到另一个量上,此是前面的量就是map的键(key),后面的量就是map的数据(value)。map的键和对应的数据都储存在map中。一个map条目包括唯一的键和对应的数据。map容器可以理解为一种快速查找数据结构的键。
" G; W  z% E9 ], O
* `- j9 W+ M7 Q4 {9 q- F2 r可以当作map的键的数据类型:
$ D8 S3 Q2 f: q1 x  v7 W
# k0 i: C8 }! N$ X. x4 j. _4 e
  • 1 X N字符串
  • 单精度或双精度实数标量
  • 有符号或无符号标量
    7 S5 ]8 c1 S4 B; A, t1 p. K$ R
) p" |) Y; s3 M* d2 U) m4 `# m
+ P- t2 `3 t- C5 r* J- l+ @) _0 W
map类的三个属性:2 W! _! U9 A, `) `2 n4 u) g
- v% ~6 q1 |. c, o0 d! N0 b
属性说明默认值
Count
无符号64位整数,表示map对象中存储的key/value对的总数
0
КеyТype
字符串,表示map对象中包括的key的类型
char
ValueType
字符串,表示map对象中包括的数据类型
any

6 W& |* J5 j$ L! ?+ _. q+ \4 b6 ^+ \9 T! K1 }

- y' ]4 U; s& P0 O& o" s2 k- |map属性的查看方法:& w4 V' j- m3 ^4 [# H
# ^" j2 |, m$ S  k& c4 u. v
map名+小数点“.”+map的属性名% E7 J2 F2 m; j( x9 G3 X

0 i- i4 I9 s2 ^3 l: c' r例如:
" _: C2 g0 V" o- [4 e& l( c" o: a7 V2 @! |0 p/ S% L  k: a/ i5 t
mapW.ValueType
3 Y" t+ P  D" h' N+ ]& `' j: x. @. f1 J2 s
2. 创建map对象
, {* ?6 L/ G7 ]
" b. `& Q& E; `5 k; X  Y- l+ j创建方法:
& v! Z1 o/ N$ e# j9 m$ t) t
2 b$ F2 x# ~9 }+ `* {" o. q6 VmapObj=containers.Map({+ H& w( a% ?2 u# D
     key1,key2,...},{( i1 |$ c5 p: q4 P
     val1,val2,...})* @7 K: \) j! h1 C3 {0 g
%        若键和值为字符串时
4 e* n% F) u% i7 BmapObj=containers.Map({1 W/ V, k8 J" K# K) y5 n' U
     'key1','key2',...},{6 `: w8 {$ G4 X) K" }7 r4 s* h
     'val1','val2',...})# Z/ j# R, V( A% {
, N" A% |7 ~& _: i5 A

! y; j8 F9 }: }; F9 N0 u样例:6 I" {& N5 _. Q8 g' I1 m

- A  p7 e/ r, J. H' C>> A=containers.Map({, Q: A, X) U" \$ T4 u" E2 y
     'A','B','C'},{' X3 S" a' ]: }2 V
     95,85,75})) t$ p) H" t2 f* z! l) \. b
) C; u6 v! ^4 d( g- W
A =
6 p' P% V$ O1 k" R. O
; |8 h( @0 b  {9 h1 k( e  Map - 属性:
: R7 l2 p1 H% G4 D" m* }( x7 n* }0 \# |  Y! A
        Count: 3
5 s- x' B4 O/ F( v      KeyType: char% I  |5 @9 w4 c2 p. Y
    ValueType: double
3 x0 P5 d. E, @" Q
& u' b5 Q- h  v' C9 s>>
: y4 P1 T  Q# Q, k" Q% I' \: b+ g- P" I, G
/ n8 U& c8 m# c# O* X* }
其他方法:先创建一个空的map对象,然后使用keys和values方法对其内容及进行补充。6 t: ~8 x0 ], K" t% @
! |; d3 W( {6 P- t5 i/ p8 K
newmap=containers.Map()                                                                                                %        创建一个空的map对象; h7 c% [7 B; X* ?4 |$ v3 ^; h
3 H0 a7 K$ {9 [/ [/ e% c
+ y$ h' X/ b9 O( J. U- B
' ^- ~! C- z8 u2 @2 e

- Q6 m0 l! ^# U3. 查看/读取map对象! v- h7 O/ h) D+ U8 h' W
% S4 F  O& F$ ^) y; }( d
  • 查看命令$ ^! [1 t% I1 ?9 ?! w+ g: n
/ v/ u( Z9 t9 l' E/ _: b- }! Y
keys(mapObj) ' j$ e5 }+ A" J0 M3 {0 @" _) a2 N
values(mapObj)1 o0 u! W+ b4 V; P: {% E
$ q: v6 l3 d- v2 R/ c& J+ O; P

8 q8 {& H4 t1 o4 N; K样例:
0 o4 z- }. {0 b: Q3 n# H& W( g0 p  t
>> keys(A)
  L2 u. @% F) I- J( }% @* }  b& m3 E5 ^, s8 j0 U& ?
ans =
0 b6 I; ~! l1 q; t3 T6 T6 h- c  B* @- P7 P
  1×3 cell 数组
" R! p$ j0 ?3 M. ?' r/ p! g- N/ P) r8 ^% S9 S! o
    {
* b5 ?0 k$ t" L7 L       'A'}    {% }* g' n* f0 N7 v& c" _
       'B'}    {% j( X5 Y* P1 S
       'C'}
/ ]# N( r3 A8 p9 {3 O4 z0 ~: q# ~9 b/ K
>> values(A)6 k! @& H, e5 }% d: M5 g
) F& W% h, k& `2 m" [: Z
ans =$ W  Y; ]# ?0 F; Q$ n- j8 E! l
! f7 T* ^; ]$ B# ~5 ~
  1×3 cell 数组
) C) G4 b) v: C! n! s: B7 w% Y( ?; W6 n, g% e0 {8 x8 Z
    {' u* O  I: y! Y* P
       [95]}    {
& q2 l3 \5 A; G3 L, L       [85]}    {# o7 X0 O  {1 N5 L/ M4 u
       [75]}1 O5 A/ T* V; {
$ K  c% Q' m2 J6 b
>>2 @0 y  z% X* G- b
9 m) B/ w( s+ F! H( D

9 K) f- ?0 r$ c8 v' }
  • 读取map对象3 v5 ~, w7 z; F1 |/ {

5 j9 L- \1 H0 R* Q& \7 F" \4 L知道map的键读取对应的值( W9 _7 W. X$ J8 J

2 [% d# g3 B. f  x4 t8 G( I8 UvalueName=mapName(keyName)
! C9 c. D  H% \% \. t# y# _9 {: a' u% F
0 ]1 l" v' W8 ?- D& v1 B! s* T2 J% x$ R. H
样例:
# Z1 J# p# N+ W$ g) \8 ~
. ?  ^5 m) Z8 U" t; P: F/ z>> c=A('B')                                                %        读取一个值9 P2 |3 J1 T$ l! b' e) i& e) F

3 w7 K$ c! U* S+ F+ mc =
4 o' _; |& J5 j% |/ X  _
' {& `+ V0 w( ]+ Y6 c1 s0 d    85. x' C( p8 X0 {: N
/ v. k& c8 q; p" g4 D! V7 ~" ~+ R6 N
>>
6 H0 Y0 `4 _3 \; b
$ `2 y, `9 L! K% P: H& f6 j% k" \7 `+ E$ Q3 f
知道多个键值读取方法:使用函数values& n, Z4 _# M: b8 E% B3 z3 l

9 @0 z5 q( W, Q; jvalues(mapObj,{
7 \1 m) h; Y+ ~& J: H! ~5 l4 ^# `5 ]       'keyi','keyj',...})
5 P; J! @! @, N0 W2 g; p
0 Z) x& e" ?3 `5 }  e9 a4 l6 N3 J  r' v( O
样例:  A$ R* H, F3 k2 \& s. k% Q
- K! Y! {) p: F. Z1 z; T  D
>> d=values(A,{
: T2 ^. X4 |4 W+ W- E       'A','C'})# h+ z7 _4 ~* K" {' J
: v- b% A& X) }" e$ D0 f' Z
d =, k* C' W/ D# y8 u8 d+ z" [

8 c. Y* S9 w. T+ W. a2 e  1×2 cell 数组9 ^0 D/ R4 ^1 z8 B  m) B/ j
. B+ q$ }7 g- A# [7 g+ c9 ~
    {
: f- W2 A* i) V) A7 E       [95]}    {
$ Z8 m4 v) o  h4 f' G0 p       [75]}
1 c6 s  r4 e" h6 `
, s( Q- Y6 e4 g) U, Q& N' ^0 X' P>>& y& |, ~: [) i7 }+ Y/ t
) h2 V) U4 R& H4 R3 f, c- ]
; f% R% B3 Z8 H
4. 编辑map对象
6 |3 i& `& y& A5 F1 u" w7 O4 K, T2 U
  • 删除map对象中的key/values对:使用remove函数。
    ; A3 d7 {6 n' M9 S, @

: V! i7 N6 t" o: g( aremove('mapname','keyname')& H& I5 W# z& q: D  ?! c& B2 x
* }' ^6 o9 s  R+ i% X/ z
>> remove(A,'C')
& K1 A$ d' M( ~; I* E2 X
2 R! O; m4 L' U# G8 o2 l6 Ians = 6 r6 o# U" [! R! c

% P7 s) m, g- q4 d; s! h* w: x  Map - 属性:
/ j5 |, x- U' D5 [* k# l  Z9 n' J' b
        Count: 25 w4 [+ O+ N9 X+ u& @
      KeyType: char/ d5 w+ `, j/ a
    ValueType: double5 e% ]1 i9 z$ z; x' V; O& T2 {

2 o! h1 Y. n, [>> keys(A)
4 J9 h! t5 U0 Z; N8 b! C+ M
( G1 M& Z: Y# y! L& I1 P6 K9 A3 rans =
. v% ~) c4 l! G2 Q8 I1 ]# s& e
" `- S* v6 l8 V4 N; _  1×2 cell 数组
4 M: [( g1 ?- y8 L; g
( o: }! g2 \8 L5 x4 W    {
+ F( r1 b# j3 @$ h       'A'}    {
/ {  e2 d0 {) l# C( ^9 y       'B'}7 w2 e! q$ f( h& O
3 P7 p2 ]# `2 M. _; N8 |" W  \
>> values(A)
9 o/ c! s+ O9 x0 o1 ]6 y# E
2 L5 @% s# i) }; F; I+ I' @& Gans =
: f8 L) m5 d0 G7 \! d2 m- S/ P/ J- ^8 Q/ d$ z& u6 E6 g8 I, R
  1×2 cell 数组
4 G% P3 l1 T8 c9 |! g' X, y, o% h) W4 t" b
    {
% S/ F1 A9 T0 m# {, t* x       [95]}    {
* }2 t0 w3 f5 f; w' a9 R       [85]}* O' z3 L1 D# W. J# L# e

1 P5 H0 s% m& ^. |' \5 b>>9 S1 \3 _3 T" t$ U' }

9 C) S# J" i  A5 a& o9 _0 _9 P
& |# X6 d. Q' J0 h" V
  • 为map对象添加一个元素/ p$ e1 [8 w' p0 Z

; c# O" w3 Z( J% {/ NexistingMapObj(newkeyname)=newvalue- F: P( l/ o5 p9 Q, D

* C6 ^1 n* V. V3 S5 x, W2 @
3 @! L7 z" m8 k; P. a* y$ h>> A('D')=88" k9 |' n: ]- }" e" d" t
3 P$ Q/ d# B; x! _& H* ~
A =
7 `% M5 X5 k+ Z! A3 |4 ~( V+ w& H* N0 w0 [5 |
  Map - 属性:5 }+ X: M$ u) D1 m

/ }5 ]5 l/ T+ m6 k; I: D' x2 }        Count: 3
; N) Q3 P2 t& l, k5 G7 c      KeyType: char
4 E4 p+ z$ X1 `; h3 ]    ValueType: double
& r# ?1 l# j7 z' V- p6 s$ k& B- ]& @& [) s. }% x2 |+ g
>> keys(A)( \. W- |2 K- ?  Z: w
' `  m: R% j$ k1 @# Q5 S/ Q
ans =1 S! z* e2 B) u$ v3 [8 Z! l0 L
& Z1 B* ~  Y$ S8 V' l
  1×3 cell 数组
% L8 W# F$ Z" T- k- B+ v) O) L9 J2 Y" H1 y. T  M' ?, k' _
    {
% \" x( d$ h4 L+ y1 M/ \- v       'A'}    {
1 O( {  ]' y  d       'B'}    {( o# g. z. E6 ?' t) h0 _
       'D'}$ {9 y- J! X6 h/ J3 f; u

6 ], C! u2 U: l* @+ \>> values(A)
$ U7 V0 s5 q& u7 A0 h& {$ |6 O6 Y  L2 x; z8 B
ans =
( q' |$ W6 w: A$ {" A6 P" H: n( H: H0 v/ K3 s1 w
  1×3 cell 数组
7 K/ K; X* [* F! t9 O" V
9 s3 i" p1 W9 K    {/ s9 X; ]% `0 P( A  R: n
       [95]}    {
# F# h( C2 B! p. p0 ]0 i: `+ J       [85]}    {! e$ N6 j5 F1 X! P' O
       [88]}
: S# H; A2 g% _
2 q! a  l$ N; G- I: u0 c$ i4 O3 O2 E>>
  g; [0 t+ L- V& V7 l
$ d' |4 t, ^- Y; v- P8 f- r: s" h. b/ _; E! @4 `1 r' v
  • 修改keys
    ! F+ V, {0 ~$ E& u" t9 H
7 [4 e. b& f9 G
无法直接对keys进行修改,应当先删除要修改的key/values对,然后重新添加一个新的正确的。
8 T$ G0 s9 H' H9 S( r" Z1 Q
% X4 L6 m$ G( ?; z1 A
  • 修改values0 Q; C& o' P8 g) t" F
, {/ r7 H- R2 @# V
直接进行赋值操作即可
- @- w$ `3 C6 K3 x! B0 w1 t+ d7 [& M6 C5 \. L' E
>> A('D')=1009 k7 n  O, P% F8 ^3 i9 G

7 K$ t0 F6 \) ]A = 3 p! t8 Q. _' ~: m* Q6 r4 x

( d  l5 x& b, F' b  Map - 属性:/ }6 N7 r! F6 a( D* P5 O6 Z; ^
: @% S- D7 d  Z, T' u9 P
        Count: 3
% z- t7 D- u+ l6 F* r9 ~$ R      KeyType: char
+ V3 J3 m- _1 j+ m! A8 Q    ValueType: double
* q4 n- K5 z8 s* Q3 N( ]9 U& U0 z; Z! J. O# `7 z) K
>> keys(A)8 c) I6 ]2 ]' {- v% }/ c  J

7 V3 G$ E; _4 P5 N, S  p" lans =
- s5 h" T8 g0 l/ b1 `- e
% H: [! K9 x9 T9 K  1×3 cell 数组
0 j# O: A4 J  _' y* q0 @  v% @' I# A7 }6 R7 ^
    {% y; `9 F! n* m# T+ B0 b
       'A'}    {) l! m6 p$ Q3 p$ T6 M+ \) D4 }
       'B'}    {
# N# k7 @( Q. @5 R- Z  C1 _       'D'}
* V: h- Y7 k7 X' \& a7 {9 ]
; C. P$ @- t+ D/ @. P7 U5 v- V+ n>> values(A)+ `& D/ |' _" P# L6 A8 O( b: Q5 H
3 Y) B) X! _' n' Y
ans =
9 Z& }7 [. y7 V* z0 y8 F; C
# W& E/ s* a3 o/ \  1×3 cell 数组
" V( T0 |5 W* ^1 L' H; N  L5 [: R6 Q4 _/ |" |# f
    {: n- a! ]- N, h! R9 l
       [95]}    {
- j, y+ R1 I- b1 `       [85]}    {/ }% ?. o8 a- |- C6 O6 y
       [100]}
1 U3 W$ x$ `+ b8 s1 C
9 l- Y2 C% W; v( s' p  s>>
, j; `4 _  n- h

该用户从未签到

2#
发表于 2021-3-10 10:57 | 只看该作者
matlab map容器类型
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 01:31 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表