0

这也许是一个简单的问题,但我找不到答案。如何存储值是数字数组的键值对?例如:

 X = [1, [1,2,3]]
 Y = [4, [2,4,2]]

等等。我应该使用哪种数据结构来存储这样的一对多数组?

编辑:

我尝试创建一个这样的结构: struct(1, 1:3) 但这会产生错误“字段名称必须是字符串”。但我在这里需要一个整数。

4

3 回答 3

4

您可以使用地图

>> 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
于 2014-07-19T17:20:57.270 回答
0

一种方法是动态使用该结构。我这里没有 MATLAB 来验证此代码,但它应该可以工作。

X.x = 1;
X.y = [1, 2, 3];

Y.x  = 4;
Y.y = [2,4,2];
于 2014-07-19T16:05:34.637 回答
0

结构也是一种选择。

>> 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

>> 
于 2014-07-21T06:53:59.370 回答