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

matlab map容器类型

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

  d" [$ f, r0 z0 _* L9 T1. map容器类型以及map类概述2 u* [4 l/ y4 s2 s8 s

! k' x3 E. u1 K# ?' V4 D9 f4 Omap是将一个量映射到另一个量上,此是前面的量就是map的键(key),后面的量就是map的数据(value)。map的键和对应的数据都储存在map中。一个map条目包括唯一的键和对应的数据。map容器可以理解为一种快速查找数据结构的键。
6 x" C7 u3 [3 ]3 `
) @5 F$ O: f+ V4 P可以当作map的键的数据类型:/ J6 b4 [/ }( L7 @

& e. o+ Z8 X% t# |# I
  • 1 X N字符串
  • 单精度或双精度实数标量
  • 有符号或无符号标量$ X! _! t; n7 q" r5 k

- q; m) y5 C6 c- A9 f8 y3 H% C# z. C* r: ^
map类的三个属性:
  U9 o/ ]5 S; d3 N) W
" [( E- P& b, \8 y" ^  H% D" ^7 u
属性说明默认值
Count
无符号64位整数,表示map对象中存储的key/value对的总数
0
КеyТype
字符串,表示map对象中包括的key的类型
char
ValueType
字符串,表示map对象中包括的数据类型
any
6 r% M# A1 u& y1 c& |4 b4 A+ |
9 k- b  |( l/ q0 b2 t
9 o# e: {& J  d$ M7 T% Z
map属性的查看方法:
' D7 |5 X5 ^9 y. L( c
; t9 ^/ n6 p& r* o0 nmap名+小数点“.”+map的属性名) Q4 w+ S1 p0 |/ w+ ?6 r
5 y: W' {" Z! V1 e, [- ?) k5 O
例如:
2 r5 \: r% W! Q" ^: h1 |2 @6 |' w3 X1 X. j: y$ p& ]
mapW.ValueType
3 X2 U7 i/ |3 H; A) e0 A+ _4 ]
+ e8 U$ l- i. v3 L5 W2. 创建map对象
1 O# i7 P  S+ E  A6 N
& D+ \# U  E& a* u- j创建方法:
" O+ d: F# h5 ]% j
) z6 |1 o' f) U; ^9 RmapObj=containers.Map({& K, s, k. I% R) Z8 \) j  I* Y
     key1,key2,...},{* O* u  ]- H0 a" V8 r/ Q
     val1,val2,...})
  B. N' X3 }/ h) x- N5 c9 w3 Y%        若键和值为字符串时
0 G( ]9 {. b  r1 r+ `# G9 T0 l+ Z$ bmapObj=containers.Map({
* K! K1 X% q7 P! I5 t6 C1 A     'key1','key2',...},{
' f. e6 ?6 ]! s, G) l2 U* K; C     'val1','val2',...})9 z5 l4 }3 F" r& }( W" X7 F
9 H& Y& ^8 M& c' w# E

- @6 M8 R7 u' }* K$ F9 _' e% Z" Q样例:
% _3 V& G0 r  V$ X. j7 w' m3 D  K
* h  v; U; p) j# e' Q8 W>> A=containers.Map({
5 M5 y* o# |5 o( o  d, f1 c6 J     'A','B','C'},{' W1 H4 i# E. v3 [9 I
     95,85,75})1 i3 _/ W* n. ?, a/ ?7 _- }
! W* Z# z7 B1 T: u
A =
# v, n* k: f9 K/ c8 O- s# X7 y8 C0 Z7 X* a6 P$ W0 r2 B
  Map - 属性:
/ M+ }" E9 f8 a9 R0 k5 s* F
/ C4 F, _' R- h' `2 |' r        Count: 3# q: {% f+ _# j0 ~: c, N$ j$ l  u
      KeyType: char
4 a: R; @' o2 q. C: u7 U) m( N# U    ValueType: double& e$ f! u8 O5 ^, u6 }  s
9 Q; \. s& g9 E& o
>>
3 u3 Z- Q' b' w4 p- @) t# v$ w# ]/ v4 M* Z

. S- \4 M5 Z$ X4 |9 s( g* ]其他方法:先创建一个空的map对象,然后使用keys和values方法对其内容及进行补充。
7 `$ j& K" ~; N* U0 U* L4 `) b% M& ^# Y9 ?2 T& z
newmap=containers.Map()                                                                                                %        创建一个空的map对象, V; I) o& {! Z2 _) x/ E* M* z* W

( \- K$ g9 Z: n7 b- V! v* [2 O# s) a4 T% X8 z1 ~( R0 X

  z+ x7 \- i) t0 h7 O* d+ g& C: k' W& D8 i; U, G$ c
3. 查看/读取map对象
5 V% _" {2 O4 k; n  N" I; q! \- N
  • 查看命令
    ( p" U2 `( P8 T9 G, `4 ~$ K
* e, t) j3 w1 A% X
keys(mapObj)
& I- C4 b  Z6 [  S/ D3 u& k, s0 fvalues(mapObj)
2 ~  M1 s* G- e2 o/ w7 O& R0 p# \9 h+ _; V+ }
% c3 j# s4 D5 {
样例:
# @# `. ~) `# Q/ b+ f0 b. {  V4 N- b' k/ }
>> keys(A)$ T" j/ @  r4 r) w; o2 M
# q- w; `. A6 b* @* U( \% P2 \
ans =: t# T& ~7 ^$ w% |5 J

2 W" u( x. e! F  1×3 cell 数组
2 W& U( k# I; v+ h, u3 L& z& y' W6 B7 z
    {/ F& g. z' b6 w8 _
       'A'}    {2 N1 M7 D- X2 Q* i7 D3 H
       'B'}    {
7 d9 k; d; B& w& ^  ^* m       'C'}& \, x" ]! J! E" U$ q  z3 }
3 d/ k/ ^0 |# ^: L5 F* |3 }- K! ?/ q+ V
>> values(A)
: e8 t! X& m, l2 X( o  G- s
) d. @' t$ x7 Mans =6 R' x- o3 o. r7 [
5 ^: Q# D) b: O& i  X1 P; A
  1×3 cell 数组
% o/ x4 ?4 [  E7 N6 n4 v1 U6 ?$ \- ]& S4 b
    {
& U5 {0 ?8 Y8 W, y' \% O2 H       [95]}    {
1 A0 k" k5 n$ j% x8 S       [85]}    {- Q2 V( n- \& I! g. r0 p7 c
       [75]}
$ o6 }3 C8 S& ]$ A3 q0 S) L* {5 o2 P  I/ R; Y  U
>>4 l6 C6 n1 C+ J$ o1 l9 h2 h4 S9 H

! M6 c' f0 k4 m5 s' d
7 h# a: N; i6 \& }6 W* c7 X
  • 读取map对象; i9 f  q4 @. n  B2 K
& W! W6 A( x( \5 U
知道map的键读取对应的值( q  |+ U: {, }* m) l

( S. W8 ^0 _8 {; {  I! J0 I" }* LvalueName=mapName(keyName)
- K+ V* T) }0 T3 @( F+ a% F; q4 h  m: w# Y" I
/ K( x* g3 x8 i' \" h# b/ ?
样例:- W6 o4 n& S2 o! l+ p- b

9 p: t6 v/ q% }- D8 s  M# K>> c=A('B')                                                %        读取一个值
6 {6 j* F' K6 V. G+ v0 z% V+ ^1 N7 A2 \, D+ U1 W
c =
* t- _1 B' s8 |
% n, w3 X" u8 z8 h1 y    85
* G, Q' h0 d- j; w4 d8 q' Z+ O6 W5 U; ]: e0 p( c/ r
>>
2 a' U. h' w* [3 P8 Z$ b2 R+ z3 ^9 [& A/ U& F

: D( q  w+ U$ D0 G2 A! Q* z知道多个键值读取方法:使用函数values+ K2 v4 r& y1 Y$ F
! j2 C' v. e! c2 p5 m" c& p# t5 ?& P5 Q
values(mapObj,{
% M7 `: l" X% o$ ?       'keyi','keyj',...})
* }! y- W# u1 D+ K) h9 v8 v2 J* }6 v, u
+ h( i! Q) v# D+ s! o2 R% n$ v
样例:
* h2 a4 y: s: s# R& x& }! n7 _
" H# L" Y9 t9 M0 u  {>> d=values(A,{5 u& U4 @0 l' D0 [! `
       'A','C'})
, f* ]" j* D! r% N. _( c- \9 H8 f3 |! D6 n
d =+ Z( O; U; C" Z/ ]- ^/ i
; \4 L: r& d- e- Q6 n! X
  1×2 cell 数组0 I; Z: b0 T' Z" R# G' L2 u+ [

* t' k1 N3 U/ O$ t# f    {
8 h# {1 d3 b+ w       [95]}    {+ k2 w9 U' E% Y$ i* D# T
       [75]}
5 l  w& O" c6 t0 r# k
* J3 ]3 t( k& h* Y# i  w9 M>>
) `6 `; d: f6 C+ U3 O0 v$ \8 v7 g( b1 a$ R* g

: @6 N2 r5 J, x9 X4. 编辑map对象0 H* A% r& [' w$ w* p- M, S1 A; J
+ D3 D2 L% u' F* ]/ g6 j
  • 删除map对象中的key/values对:使用remove函数。
    : ?! q3 x; E1 l

  A+ ~7 s7 |( _$ Mremove('mapname','keyname')2 D9 _3 w/ ?- \# ^7 r

3 ~. `7 y/ y- v# t) @6 S>> remove(A,'C'); e4 N; f+ z+ }8 x
/ z8 b" I9 ?$ ~3 Y1 f  ^3 a, Z
ans =
" Y4 P& V! O% z' A7 l  ]' c9 h& \5 r# g. I  i) \6 Y
  Map - 属性:
" o+ M$ U6 P* j6 {6 f8 N& R5 D. X' V& H3 v; w$ A8 E' y
        Count: 2
- t8 g. F: h6 o1 f      KeyType: char/ \' I/ H4 ]4 ?- ~2 t
    ValueType: double
' _' ]( N8 i+ o( C$ ^: ]2 ]2 E+ F3 a4 r6 D4 G0 w3 n' i0 ~
>> keys(A)# Y' @0 q% `; q6 `

  r( {; W. n& Yans =
- z7 {$ u; V; f7 ~2 t/ g
0 q: W6 v& S; B5 k( i( A: p  1×2 cell 数组5 M: y" Z$ j9 B, m5 {5 \" p

- T. E! V# X2 T3 B; L  {$ u    {# Y+ l9 U3 J4 z
       'A'}    {
* h; n4 ~3 q  t' c# y! ]4 G$ X, b1 ^       'B'}; t. \4 N) a8 m. V0 v

& x- ~4 o4 l: o& ?- W) ~8 T>> values(A)  N9 \1 ]: G  o5 s

3 j) `) n! a5 }% U. zans =: g1 N' z% K9 {" x# v. q
: p2 |, O+ g1 M/ r  X
  1×2 cell 数组
7 g2 s' \0 q; d) U2 E
" k  ?* f4 n9 F: b    {
6 b3 Y7 @7 e5 [/ L0 I! U       [95]}    {
$ _0 D* x+ ]! a* \. @       [85]}
6 V( I+ T0 H) {: E& H. L! [+ c$ {$ f% ?: |' O
>>
$ m, Y$ V( y3 ]. S+ H6 H; R' r0 d5 c% ]1 L3 N0 x2 n# r( \9 F
% X; r, b* x; K4 |2 t! {
  • 为map对象添加一个元素
      f, s3 I/ X/ W

" m: b* e" O; [6 OexistingMapObj(newkeyname)=newvalue
) k$ e* F" Y; \; d; I$ n2 G: c% t& [2 W/ T0 _

! ?8 {3 e4 \4 D7 t>> A('D')=88
* C% E" n/ |6 D& R; H+ D. R0 q- C3 J, x; R5 w# C
A =
- D* h; A) _) C0 [, t$ z% ]1 ~3 R5 a. Q) Z
  Map - 属性:
; h$ `4 [8 a0 n9 F: e! K4 C  B( h6 B" ^4 u" M9 ]; `2 @- E2 E- |
        Count: 3: v! j) q- E; J& P* ^5 C$ j
      KeyType: char
+ {1 `& j, ?. s" _# d    ValueType: double( a3 a0 h& y' F/ w) [8 E8 c* f

- C( U4 g, G! s% {>> keys(A)/ D. f7 q0 v1 f# I# P" |0 N

0 H, Q( O6 w9 y  Kans =3 O$ z! g- ]0 l9 V% @! c& B
8 B* Q8 L: x- S
  1×3 cell 数组% N& a2 D- K+ {! o- {, \
- E7 d8 a+ Y; I( b
    {
, ~) w% z6 x' _4 {       'A'}    {( {, m2 C% V: q! J8 {$ K3 V% y, U
       'B'}    {
+ {, I! T8 |- [       'D'}3 ?! e* p2 C6 J' s# ]

0 J6 }- ~2 v' y/ I6 z4 [>> values(A); v0 {- _% s! a- ?+ u5 O

+ Q( H; g. A5 e  L, @+ zans =
5 w7 r. N) J* e( e4 u9 N4 K5 F" M/ m. P
  1×3 cell 数组6 C8 |" `' l. X; E; y8 m: ^
7 m. ~/ S: S. o9 d( L: N% P
    {) y! f2 q! \, I# O0 o: Y2 L
       [95]}    {
' W9 j% R% ^+ e7 }2 l! U  i2 q6 N' o       [85]}    {9 L9 m2 v: A# m. Y5 |2 \! v
       [88]}5 D$ v, b* U, [$ \! G% j/ b
8 x6 [3 ~0 p) F- O8 {/ s8 O
>>
" ^5 B4 R, C- Z# S* H2 v( T0 O0 a$ _3 c" W6 p3 ?. v' i1 P
7 o: K9 R# }% E8 n7 p3 t) R8 O" R6 f
  • 修改keys! @/ z7 m. e6 {1 G
, {, R: B5 u3 u: j' E/ ?6 ^( t6 |# p
无法直接对keys进行修改,应当先删除要修改的key/values对,然后重新添加一个新的正确的。6 B- U* |* |( o

& E! U& c7 O! M4 t9 K1 b9 L
  • 修改values
    ' e6 w/ ?8 r" @$ L
+ H0 f3 L, C( N8 E: f' L
直接进行赋值操作即可0 i% s& p# |; `/ ]
8 p& S0 s" j% H0 C
>> A('D')=100
, `! a5 C) ?, x/ u- K1 U. ?& p( L, H: H6 ]3 S6 z3 y, Q* b
A = 6 v8 d5 l2 s. |( N3 y/ ~9 d
% d) Y9 Z5 Z8 N1 ~% K& ?
  Map - 属性:
6 v6 r# B4 y" d+ r) A% [
$ S3 H3 h% g( w$ s, p. }0 E, U        Count: 3( S# C& b" ^# @7 A
      KeyType: char
3 ~, s2 Y( `  n# y' H. R) M    ValueType: double: i& _$ G5 h9 s
- a- f6 B# @  W+ M$ _( i
>> keys(A)
3 E' {& H& ?0 J/ S
3 H' c' X. g( @4 K/ o6 @ans =( o- u# G& V9 H) ~4 h
3 X  B( p- @% x2 Q8 o% A; {
  1×3 cell 数组# Y  K1 q- S# H% Z& N: k

, V9 S2 A% Y' `. ?    {# T; k  y  E9 {
       'A'}    {
8 t; }3 a& z8 p  z- c6 \. Z/ i* R       'B'}    {' T- C5 G: z7 [
       'D'}
2 W* V9 E, R% b3 S; B7 e# s& I$ ]
# M) B, a: C8 P, B0 S1 i>> values(A)
4 g4 ^% v6 m6 i" e3 h& S" W2 W4 C+ N% A/ f; d2 I
ans =
1 X# G$ P$ Z' d  o. h5 o' N/ [# l* h6 k  k! ^
  1×3 cell 数组
. `! c! n; A' u3 Y" ]! K6 l' V* s; [) t+ n: A2 K# I
    {. |' e/ |* i; o! Q* W( v2 G
       [95]}    {
2 j% K# {: }" S: @4 j$ Y       [85]}    {
+ l4 }+ q$ h, S9 ?; ^       [100]}, }1 o, ]+ A# J6 W5 F1 H) f9 _
: M# r! x, g" j3 h2 e8 x
>>2 C1 [9 f9 K: e) a5 \/ ^: k( T

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 09:04 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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