matlab更改cat12默认参数时报错“元胞内容引用自非元胞数组对象”?

1.Map数据结构概述

一个Map容器是一种快速键查找数据结构,可以提供多种方法对其中的个体元素进行寻访。和MATLAB其他多数数据结构不同的是,一般的数据结构只能通过整数下标索引来进行寻访,而一个Map的索引可以是任何数值或者字符串。

对一个Map元素进行寻访的索引称为“键”(key)。这些键和其相对应的数据值存储在Map中。一个Map的每一个条目都包括唯一的键和相对应的值。图3-6所示是一个储存降雨量统计数据的Map,此Map中的一个索引是字符串“Aug”,对应于该月的降雨量37.3。

图3-6  月降雨量统计数据Map容器示意图

Map中所使用的键不必像其他数组那样限制在整数范围内。一个键可以是以下任何一种类型:

(2)单精度或者双精度实数标量;

(3)有符号或者无符号标量整数。

Map中存储的数据可以是任何类型,包括数值数组、结构数组、元胞数组、字符串、对象,或者是其他Map。需要指出的是:当Map中存储的是数值标量或者字符串数组的时候,该Map的内存的使用效率最高。

一个Map实际上是MATLAB中称作Map类的一个对象。它也是一个句柄对象,和其他的MATLAB句柄对象一样。

Map类的所有对象都具有3种属性。用户不能直接对这些属性进行修改,而只能通过作用于Map类的函数进行修改。具体属性说明见表3-9。

无符号64位整数,表示Map对象中存储的key/value对的总数

字符串,表示Map对象中包括的key的类型。KeyType可以是如下类型:双精度,单精度,有符号或者无符号32位或64位整数。如果用户添加了不支持的类型,如int8,MATLAB会自动将其转换为双精度类型

字符串,表示Map对象中包括的数据类型。如果一个Map中存储的是同一种类型的数据,那么ValueType就会被设置成该类型。例如Map中的数据全部为字符串数组,那么ValueType就是'char'。在其他情况下,ValueType的值是 'any'

查看Map属性的方法:在Map名字的后面加一个小数点'.',然后跟着写属性名即可,和结构数组的表现形式一样。例如,为了查看名为mapObj的Map中的键类型,可以使用如下命令:

Map是一个句柄对象,因此,如果用户创建了一个对象的副本,MATLAB并没有创建一个新的Map,而是创建一个指定的已有Map的新句柄。如果用户通过新句柄改变了Map中的内容,MATLAB同时也会将此改变应用于原始Map。但是用户可以在不影响原始Map的情况下删除新句柄。

表3-10中的函数可以应用于Map类,具体的用法将在后面的章节中介绍。

检查Map是否包含指定键

在Map中删除键和其相对应的值

Map是一个Map类中的对象,它由MATLAB中名为“容器”(containers)的一个包来定义,可以通过构造器函数来创建。在调用构造器创建Map对象的过程中,必须指定包的名字containers:

1.空Map对象的创建

当用户在调用Map构造器的时候,若未指定输入变量,那么MATLAB将会创建一个空Map对象。例如:

空Map对象的属性被设置为了默认属性:

一旦用户创建了空Map对象,之后就可以使用keys和values方法对其进行填充。

2.初始化后的Map对象创建

大多数情况下,用户希望在创建Map对象的时候就对其进行初始化,至少对部分键和值进行初始化。用户可以通过以下语法输入一个或多个keys/values对。

对于键和值为字符串的情况,应注意将字符串放到单引号里面。例如,创建一个包括字符串键的Map对象可以使用以下命令:

Map中的每个条目都包括两个部分:一个唯一的键和其相对应的值。可以通过使用keys函数查看Map中包括的所有键,同时还可以使用values函数查看所有的值。

创建一个名为tickets的Map对象,存储航空公司机票的编号和乘客名字。

}

身份认证 购VIP最低享 7

领优惠券(最高得80元)

}

我要回帖

更多关于 matlab无法导入的元胞 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信