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

matlab map容器类型

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
; o0 i0 l* X" {! _# I+ C
1. map容器类型以及map类概述! X: i' {7 R- a- U3 Y" E

' E3 W% }1 \' fmap是将一个量映射到另一个量上,此是前面的量就是map的键(key),后面的量就是map的数据(value)。map的键和对应的数据都储存在map中。一个map条目包括唯一的键和对应的数据。map容器可以理解为一种快速查找数据结构的键。
4 c4 A- b' B" I5 B6 S6 i- l' l% v1 |# @/ f
可以当作map的键的数据类型:
) ?2 c  e0 C# }0 R/ N) w* y# H
1 @/ U8 @: v, q
  • 1 X N字符串
  • 单精度或双精度实数标量
  • 有符号或无符号标量
    9 ?% ~: ~3 P# t( z  T; n

6 w7 b3 R" p; {3 v
9 }2 p; k# W  Kmap类的三个属性:! x5 |/ F+ @" k6 G# H- V+ ?8 @
5 r- r. ~2 o. I
属性说明默认值
Count
无符号64位整数,表示map对象中存储的key/value对的总数
0
КеyТype
字符串,表示map对象中包括的key的类型
char
ValueType
字符串,表示map对象中包括的数据类型
any
. m7 ], }' Q) X& o& O5 U! U
7 Y9 X, h8 R: n# ?( [' i9 ~

% ~+ O7 o; m* Y, qmap属性的查看方法:7 V' y, J: x; y3 V4 @& `
6 A! q+ ]2 E8 F4 Y
map名+小数点“.”+map的属性名
; f" U& w8 u+ w7 h0 x& g) T* ~& B0 o: T" ]4 h, f% k
例如:/ [" M$ p2 K! H; e, v

3 ]0 O6 A0 ^4 ]1 y* X$ D9 C' l) CmapW.ValueType6 ~* @# O- R0 ^4 e+ m

3 J; v  \2 ]* R% ?, R( s2. 创建map对象
7 S+ q0 k: B- l) H5 V# y3 Y, v$ ]. I
创建方法:3 s9 I1 {8 O! r; M7 F+ X
$ x- f- Y* W9 ~
mapObj=containers.Map({' v; c; Q2 Y! w2 @$ k& ~0 s
     key1,key2,...},{
( E5 Z: i8 N  e* S+ s0 O/ P     val1,val2,...})
1 M  _! {3 N- L6 C! Q4 O%        若键和值为字符串时
  R; a+ b8 ?2 R  m% VmapObj=containers.Map({+ }3 }( E! O, u* q9 T  J
     'key1','key2',...},{; H$ T0 O$ C! P! i' i- r0 m& m
     'val1','val2',...})& M6 o3 m% w) L
( V" e3 |4 d: u3 Y4 w8 d
- J+ S2 W' Y4 A9 x# |
样例:  K, n9 ~3 r" w2 D$ e
! [% d5 u6 U. _8 c- V: |( K6 s3 a! J
>> A=containers.Map({! A7 d- J. w; b& g$ R% o
     'A','B','C'},{
. l9 Z2 q7 ?! G8 h4 H  g: M     95,85,75})
0 [% R" [* \8 S
/ ?* N9 e" t/ F# I6 mA =
, q; R4 U5 m4 w7 q0 u- i* _0 C3 Z; i/ N
  Map - 属性:& }1 ~8 C: V* E9 x- D3 L0 [2 `/ b
9 W7 @- V9 ^# Y: q
        Count: 3. M2 W! u6 `2 P: W* l
      KeyType: char
7 v! Y" w2 Q1 Z- z+ |    ValueType: double
. |; F7 x$ R# j# q2 C: N3 R! l4 ~
5 i' ^/ T3 \2 A) a/ s0 z>>
, z  j0 }" W5 R7 q' ]* J
0 o5 ~) c+ X' {' _, d$ T9 R- H* s4 ?# L! i: C/ J
其他方法:先创建一个空的map对象,然后使用keys和values方法对其内容及进行补充。
' `5 Y, L& y9 |
5 _; h( [4 O( b* T4 Gnewmap=containers.Map()                                                                                                %        创建一个空的map对象8 P1 w# v- {" \% Z# b
: t* G4 b7 Q/ g, A+ X

0 W, R7 D0 D* ]4 ~9 z7 H* s* H0 D) X9 B, z3 u' q8 s  O
9 M% s. G6 x; Z0 y5 _
3. 查看/读取map对象4 N' @  z. M& m$ X+ t# t
) T  d6 \% V1 K# K
  • 查看命令
    ! A' J% Z" |, J( g

; T* P. [) P0 t5 {- e8 Mkeys(mapObj) 3 _0 N, j1 h# a8 s0 }# `# d
values(mapObj)5 ^8 I; K# h: h  v1 G1 W

6 X, p. L; a, O: D- c2 r3 t$ a( T* W7 Z9 [! V
样例:1 D9 \- y5 E9 Y8 y+ V
$ [. c5 |! I; ^) M! s% N5 f" v" F" C6 R
>> keys(A)/ m0 L1 [+ C% w% P- x- z
8 G1 c5 p& ~* c8 j7 m. s) ~) v. i7 i
ans =
2 ]" b/ d3 s5 I/ O* y, K
2 G2 `, s% {/ F5 A( g9 K  1×3 cell 数组4 S7 T" G( a6 o) t2 ?7 u' O
- d, t' j; @9 Z
    {
* @3 T  @8 g3 u+ h       'A'}    {
- z8 H+ M( R0 s( m, G       'B'}    {
# M! r2 W1 T' a, }! ~( X       'C'}$ {2 `  G7 e; X) K& [% n

! I8 Y  f& [8 S# }+ R$ Y3 }: V7 A>> values(A)' W, b0 @' c2 o( C# P2 S

. C. @4 c- k# j2 _ans =
+ H1 \0 E0 T4 ]' V. U5 |* O$ |6 I* k2 Y# X2 ~$ d
  1×3 cell 数组2 Z, k6 O% C- @) [

/ E4 Q' T4 n9 s3 I    {) \: p/ K3 ]6 [  n8 V
       [95]}    {
* q7 M& x! {8 q) c; G: S       [85]}    {( R/ G' ]) H; m) A5 K
       [75]}
9 Y1 k9 Y. O' {9 c
3 Z! G9 |8 A& H; f" H. N, S5 G>>1 m$ j( N. _; }+ m% f) F2 `

  o  T8 @6 D  a" o" G! M: q  ]* O* k  U1 f- ~( `
  • 读取map对象
    . d7 l1 ]% G4 j5 K9 ?1 |& I' X+ L

# r8 \+ a$ g# L知道map的键读取对应的值
, I7 K9 r5 q  j4 ~* T! ~  l) \+ b: P# G" k4 K) B! H
valueName=mapName(keyName)4 @" ^  Z# {: ~( E+ [4 A) E

1 K$ r9 s, n; Y: Y$ \; a+ S5 l% h1 ?, U; @
样例:/ V& |  t8 R6 h

8 u& K2 T8 j' ^! }5 C# ~>> c=A('B')                                                %        读取一个值5 `( _; t- \" r
! h+ b9 C2 Q7 P4 t1 d
c =' X" ~6 p$ U( M& S2 L
3 ~1 n& @* [# \7 b- w$ J
    85! O+ `3 Q0 ?7 z7 `* Q- T; j2 I
* C8 ~) i! q1 e0 ]/ J- s4 D
>>& E3 A2 a  B  x! |, G
, ^- s8 Y& z4 _: c, q) x" K

# d$ T; x" K. C6 h' Y* i4 o知道多个键值读取方法:使用函数values
1 ~3 S+ M1 x9 K2 E. i& \7 E+ X3 W# G9 j: U( `- T/ Z* x- j
values(mapObj,{1 l! h3 ]& Q/ p3 m/ S9 Y9 U+ e
       'keyi','keyj',...})2 X! Y. |0 D$ \' l. M! p5 `# ?

3 a2 ^! @3 W1 r; a# ]
: u0 z! l/ m/ h& o& S2 Z样例:
* c1 Y% T! E" N, A! e
$ K& H2 G. ]. U/ j( {; g! E' T>> d=values(A,{- l- w3 }+ J; J4 D: @! h/ p
       'A','C'})* J; M0 v6 U3 h( p1 D: o+ Y
3 i( k: o( s6 b+ g/ B1 ~
d =
' p3 q4 [. }" i5 Q! }4 `) k0 n# ^: p/ V9 u+ @' l
  1×2 cell 数组
! m% \; b  v$ ?, W$ c+ A6 t6 {6 R& ]9 O) F, K( j6 N3 ^8 a
    {/ Q  a0 g' o( Q8 Y" ~
       [95]}    {
) @2 Y. H7 ?1 F       [75]}
4 I5 \1 d0 z" I1 k! Y/ @  b0 D  t: f8 J& c
>>9 ~8 A4 e+ V2 J5 F6 q& O

- Z7 P# f# |( e" }; C) V- f- c/ I
! t1 q' y! T. ]3 G1 \3 }+ O4. 编辑map对象
0 R" y- w; q' f  {3 E3 S8 Q* G
2 t% `. k  X; \; E/ x; T' p
  • 删除map对象中的key/values对:使用remove函数。
    : |8 t9 T# W" d+ ~. j  s

5 @; u7 ~% B9 c; |7 Kremove('mapname','keyname')
/ Q2 N) C, y9 Y% _( {5 z! r
$ ]0 K9 j* K8 q; h" @1 K  p>> remove(A,'C')
  X" e- E% Q) Y  i
# v" P+ h; L5 q! g& R" Tans = 6 b$ m0 _; O  Y0 k3 ~7 T

4 X2 F; f# j5 @; D. I5 I* p4 s% S  Map - 属性:' R! Z/ S$ |7 z# w  e% B
( p3 L( L5 ?* F
        Count: 2
3 l! M5 g) P; F% `' F2 j      KeyType: char- i. J. R9 h+ ?4 l1 w! R4 |
    ValueType: double1 ?& O/ E" k$ H: T" C

- l) B0 L9 x0 i5 k2 @>> keys(A)
- K( q) D9 {$ w% f; `9 I
( N: i6 h2 W( y) gans =
/ w7 a/ o! l0 v8 h
% G! E5 \) Y: \# y1 ^  1×2 cell 数组
- E) K  i) P3 T/ z/ y: N2 Z2 M3 ]- |0 r4 j- q4 I& A" r
    {8 O2 I+ g' C: U. a+ y
       'A'}    {
5 X% [5 E( |/ \& `3 ~0 n       'B'}( ~# k/ A$ r/ O( l# ?" J

: ~5 C, ]: N# g- h9 \: V  {>> values(A)- M- `6 z: w- M
! ]3 l+ @: ^2 @$ z- ?9 o
ans =. K( b& ?+ l$ f% b
) n$ d( y# e# ~
  1×2 cell 数组% z. j8 L0 i% @

' a; k. K, ^# S3 F! o    {
% m  v) g/ ~- E       [95]}    {! E  G: o0 @# f
       [85]}$ T' D! C: B+ P, s! V

3 l& _6 ]* h' O+ |" R, w  [>>
; y9 z. W, z# Y! v' p
6 \4 M  p0 ]& E: z/ Q: D$ B  X
+ Z" j0 A: T8 G  o) t3 _% |
  • 为map对象添加一个元素
    9 r4 w, u; h* V+ E% l' H2 `, a9 H
' Q( B" f4 M" S" v: I
existingMapObj(newkeyname)=newvalue! S7 Q+ K% |; D
5 V) ~1 _+ U( Y5 X. v

! S$ q& X0 T. G, [>> A('D')=88
$ t. |' g$ a: X! Z* {6 d0 h. e* m+ K3 {4 G# u' l$ c
A =   A5 d& b( |# p) s: Y

$ V. ~0 h0 @, V" W  Map - 属性:. i7 U  T* k* N7 {6 [

7 H* M' ]  M( w        Count: 30 s' }, W: E/ T, n
      KeyType: char
$ E; p' f. W, {5 Y6 F  K/ C    ValueType: double
. g" m2 V3 q1 `; n6 y
" k' g- e! A3 N( ]2 M5 T>> keys(A)6 o; b1 [" @3 p0 N

* y. N+ c3 e1 E4 H; wans =* m( x' Z9 |0 _. F$ j5 v
6 t# _  f4 Q: |% h/ T/ e. ^
  1×3 cell 数组/ C1 z" Z6 `/ I' |# f4 r1 g6 B

" P. ]0 ]! U, i8 d    {' L9 q% o! p8 Y! [
       'A'}    {
& z9 b8 m+ W% U/ r) L% X       'B'}    {
3 r+ n5 ]8 a3 u. O" V" |/ U, A       'D'}
* @  a9 F8 U' `9 T5 r$ B
5 G% C3 h! A/ M2 K/ H$ A1 q>> values(A)
6 D8 ?: W- `; {3 l0 l* d8 f- q& R  t" _2 I9 P$ A  ?
ans =* F- L) c+ h& }. J3 h
# v9 S4 }0 W, G3 M2 M; r' [7 g, S
  1×3 cell 数组
7 d7 g: k1 n/ I+ v+ S& e7 e
  c! h8 V" J( l( h- b8 D7 d& @" M0 R    {! r$ U% {+ U# \! |6 q
       [95]}    {
5 ?: o' n7 O% w" ~: Z+ v       [85]}    {6 R  X8 ]  M8 A. L3 I" e
       [88]}+ d6 Z* u, h& X7 A

( O9 H! g, [. W' ~5 U. _>>& K. i+ t. }) B" e9 F2 D

7 O/ \  E$ x% P  i# j) W% Q8 Z8 C7 d% F
  • 修改keys7 t; H* n7 H: t1 H
7 r5 h8 U/ T. q, _
无法直接对keys进行修改,应当先删除要修改的key/values对,然后重新添加一个新的正确的。% Z5 l+ T, ?0 ^. b& b

$ h. y7 o- K7 J$ H( p1 `# B+ P
  • 修改values/ c/ R( ]" q1 D# Z

- U9 k) S/ z2 V/ Q* V直接进行赋值操作即可
; i4 S- i2 b( [# c0 _# l! |$ `1 b3 D6 `( u5 W
>> A('D')=100% |# c- g7 L2 E: V: @6 {# s

# j% t( p: H, A1 [- {A =
: P$ `* H  _7 q" }; {3 x' q3 a0 r- \- E5 ~
  Map - 属性:) V3 k/ n) O6 f9 j1 B) B

3 e( I" L* Q3 z( H+ `        Count: 3
+ r( y8 G! l$ c3 ~& Q* J      KeyType: char
( N7 E4 _& ^( f7 C8 ^    ValueType: double4 b$ `( s& `8 Q) M' h" B

" d8 ^- y1 n- W- ?$ ^9 y( M# s( ]; I>> keys(A)4 g6 O% P) A3 h( `9 P) w$ u9 Q
" l6 r- g% y! s- t5 y
ans =
4 o* u% D# b3 s& a* q! y: x
6 S9 [. j* J5 r; a  1×3 cell 数组: v- ]. o# ^% t+ \# K3 w/ ^

: Y5 `. B; y5 v  I    {6 L7 a* l3 n- Y7 r0 w
       'A'}    {
1 y* d: P4 h- v       'B'}    {
, R, |$ I: n0 T! g       'D'}
- O. v. p: j! ?* g/ E7 V8 y
# `& N. n; ~& `  T8 H# ~/ X1 t4 S  j>> values(A)
2 K2 g7 h- K1 Z& X6 F$ E2 k* y! @/ i1 _  d
ans =5 ^6 G1 R9 d. A

# ~# Y9 N% H& t- [  1×3 cell 数组! E  G- y( ]3 v$ l: ^
- j! ]' X; x! ~& t7 y- V! x
    {* ~7 N* R; N3 [2 m( b0 G
       [95]}    {9 d2 g5 S2 c) g8 ?+ U' |2 S( `; O
       [85]}    {+ V$ W  d1 Y, |; u
       [100]}$ x& M: ~. ?7 h; w! _, ?; W  q+ D

3 M2 p& `- a+ M- F>>
8 K" P! a! D7 k# m, K+ D+ W1 Z& _

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-20 09:55 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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