这也许是一个简单的问题,但我找不到答案。如何存储值是数字数组的键值对?例如:
X = [1, [1,2,3]]
Y = [4, [2,4,2]]
等等。我应该使用哪种数据结构来存储这样的一对多数组?
编辑:
我尝试创建一个这样的结构: struct(1, 1:3) 但这会产生错误“字段名称必须是字符串”。但我在这里需要一个整数。
这也许是一个简单的问题,但我找不到答案。如何存储值是数字数组的键值对?例如:
X = [1, [1,2,3]]
Y = [4, [2,4,2]]
等等。我应该使用哪种数据结构来存储这样的一对多数组?
编辑:
我尝试创建一个这样的结构: struct(1, 1:3) 但这会产生错误“字段名称必须是字符串”。但我在这里需要一个整数。
您可以使用地图:
>> m = containers.Map({1 4}, {[1,2,3], [2,4,2]})
m =
Map with properties:
Count: 2
KeyType: double
ValueType: any
>> m(1)
ans =
1 2 3
>> m(4)
ans =
2 4 2
>> m.keys
ans =
[1] [4]
>> celldisp(m.values)
ans{1} =
1 2 3
ans{2} =
2 4 2
一种方法是动态使用该结构。我这里没有 MATLAB 来验证此代码,但它应该可以工作。
X.x = 1;
X.y = [1, 2, 3];
Y.x = 4;
Y.y = [2,4,2];
结构也是一种选择。
>> x = struct('key', {1,4}, 'value', {[1,2,3], [2,4,2]})
x =
1x2 struct array with fields:
key
value
>> x.key
ans =
1
ans =
4
>> x.value
ans =
1 2 3
ans =
2 4 2
>> x(1)
ans =
key: 1
value: [1 2 3]
>> x(2)
ans =
key: 4
value: [2 4 2]
>> x(1).key
ans =
1
>> x(2).value
ans =
2 4 2
>>