我有几个单元格数组,由不等长的数组组成,例如
a = {[0]; [1 2]; [3 4 5]};
b = {[1 2 3]; [0 3]};
我希望将这些单元格保存为MATLAB中类似JSON或类似地图的对象,可以通过键访问。钥匙可以是数字。例如,如果我致电a
,我希望获得c(1)
,如果我致电b
,则会获得c(2)
。
containers.Map
对象可能很有用,但它的值类型不能是单元格数组。
这个问题有解决方法吗?
答案 0 :(得分:2)
您可以简单地使用containers.Map
,因为值类型可以是任何类型:
字符向量,指定值的数据类型。可能 值是'any','char','logical','double','single','int8', 'uint8','int16','uint16','int32','uint32','int64'或'uint64'。
默认值:'any'创建空Map对象或指定时 不同大小或类型的值,否则由数据确定 valueSet的类型。
使用默认Map
...
map = containers.Map();
map('1') = a;
map('2') = b;
..并获取值:
>> map('1')
ans =
[ 0]
[1x2 double]
[1x3 double]
如果您希望键是数字,您可以在构造函数中定义键类型...
map = containers.Map('KeyType', 'double', 'ValueType', 'any');
map(1) = a;
map(2) = b;
...并获取值:
>> map(2)
ans =
[1x3 double]
[1x2 double]