matlab map
来源:互联网 发布:相册动画制作软件 编辑:程序博客网 时间:2024/06/05 07:37
最近看到matlab里面也有map容器啊,在c++里各种容器有时候用起来很方便,特别是组织大型数据时经常使用。而matlab由于其数组操作的灵活性,很大部分可以取代部分容器,而map容器之前倒没想到能用什么代替,map类型估计是matlab为了完善其功能而添加的。
map类型的使用在帮助里写的很清楚,简单使用一下吧。
map本意是映射,就是可以将一个量映射到另一个量,比如将一个字符串映射为一个数值,那个字符串就是map的key,那个值就是map的value。比如构造一个map
weekmap = containers.Map({'Monday','Tuesday'},{1,2})
则得到如下结果
weekmap =
containers.Map handle
Package: containers
Properties:
Count: 2
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
Count、KeyType、ValueType为map的属性,意义很明显。
创建完,使用起来也很简单,比如
weekmap('Monday')
ans =
1
要添加新的元素也很简单,可以如此
weekmap('Friday') = 5
weekmap =
containers.Map handle
Package: containers
Properties:
Count: 3
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
可以看到Count已经变为3了。
如果要检查map的内容,可以使用map的几个函数,如
keys(weekmap)
ans =
'Friday' 'Monday' 'Tuesday'
values(weekmap)
ans =
[5] [1] [2]
values(weekmap,{'Monday','Friday'})
ans =
[1] [5]
注意返回类型为cell。
连接两个map可以如下操作
>> weekmap1 = containers.Map('Thursday',4)
weekmap1 =
containers.Map handle
Package: containers
Properties:
Count: 1
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
>> weekmap2 = [weekmap; weekmap1]
weekmap2 =
containers.Map handle
Package: containers
Properties:
Count: 4
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
即使用列形式连接,而不是行连接[map1, map2];而且连接的时候,如果两个map中有相同的key值,结果以后一个map的为准。
要删除里面的内容,如下
remove(weekmap,'Monday')
ans =
containers.Map handle
Package: containers
Properties:
Count: 2
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
对于修改,如果是修改键值,跟添加一样,直接对要修改的键赋修改的键值即可;而如果想修改键,就要先删除键,然后加入新的,如下
>> remove(weekmap,'Tuesday')
ans =
containers.Map handle
Package: containers
Properties:
Count: 1
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
>> weekmap('Wednesday') = 3
weekmap =
containers.Map handle
Package: containers
Properties:
Count: 2
KeyType: 'char'
ValueType: 'double'
Methods, Events, Superclasses
特别注意的是map类型实际上是一个对象或类,同时也是一个句柄对象,具有句柄对象的特征,跟引用差不多,比如说你将已有的map复制一份,matlab不会创建一个新的map,而是相当于给原来的取个别名,指向的是同一个map,如果修改了其内容,原来的也修改,而且如果删除那个别名,原map依然存在。
另外有个小技巧,如果懒得每次新建map是还要先输入containers,可以先import,如下
import containers.Map myMap = Map('KeyType', 'char', 'ValueType', 'double');
不想再用了,可以清除
clear import
- matlab map
- Matlab MAP
- map() in matlab
- matlab中的map容器
- matlab中的containers.Map()
- Matlab中显示法线方向 display normal map in matlab
- [Software] Saliency Map Algorithm : MATLAB Source Code
- matlab中map工具箱(Mapping toolbox)使用
- Matlab里的disparity map 计算
- matlab中hash和map的用法总结
- Platform Road Map for the MATLAB and Simulink Product Families
- (转)Matlab映射表数据结构(containers.Map)
- matlab
- Matlab
- MATLAB
- matlab
- matlab
- matlab
- SQL Server学习记录之存储过程
- 整数中1出现的次数(从1到n整数中1出现的次数)
- GitHub 优秀的 Android 开源项目
- 数据库中索引原理(超经典)(附链接)
- java动态加载jar包,并运行其中的类和方法 (jar是与平台无关的文件格式)
- matlab map
- $(this).attr("checked",false);
- 计算机语言基础知识
- 动态规划
- Leetcode50: Ugly Number
- 5个好用的混合式App开发工具
- WebService服务端与客户端开发
- ios技术博客
- tableView位置的动态改变