好吧,我已经做到了,这就是我带来的。
首先,我创建了一个 python 字典,其中功能名称作为键,空列表作为值。
WholeDict = {'name':list(), 'order':list(), 'size':list(), 'density':list(), 'diameter':list(), 'radius':list(), 'nodesEccentricity':list()}
然后我测量一个实例的特征并将每个特征值附加到字典中的相应特征键。我对每个实例都这样做。
当这个过程结束时,我有一个字典,其中每个项目都是一个列表,表示跨实例的测量特征的值。
WholeDict['name'].append(instanceName)
WholeDict['order'].append(order)
WholeDict['size'].append(size)
WholeDict['density'].append(density)
WholeDict['diameter'].append(diameter)
WholeDict['radius'].append(radius)
WholeDict['nodesEccentricity'].append(nodesEccentricity.items())
测量了三个不同的实例,python 字典有这样的内容:
{'diameter': [2, 3, 3], 'name': ['c3c3', 'c3c4', 'c3c5'], 'density': [0.5, 0.36363636363636365, 0.2857142857142857], 'nodesEccentricity': [[(1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2)], [(1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3), (8, 3), (9, 3), (10, 3), (11, 3), (12, 3)], [(1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3), (8, 3), (9, 3), (10, 3), (11, 3), (12, 3), (13, 3), (14, 3), (15, 3)]], 'radius': [2, 3, 3], 'order': [9, 12, 15], 'size': [18, 24, 30]}
令人高兴的是,它甚至适用于值是列表的特征,比如节点偏心率。所以我可以用这个来保存它:
sio.savemat('aMatFile', {'featureSet':WholeDict})
然后在 Matlab 中打开它:
load aMatFile
在 Matlab 中,字典变成了一个名为 featureSet 的结构,如下所示:
>> featureSet
featureSet =
diameter: [2 3 3]
name: [3x4 char]
density: [0.5 0.363636363636364 0.285714285714286]
nodesEccentricity: {[9x2 int64] [12x2 int64] [15x2 int64]}
radius: [2 3 3]
order: [9 12 15]
size: [18 24 30]
并且特征值可以访问为:
>> featureSet.name
ans =
c3c3
c3c4
c3c5
如果我想查看实例 c3c3 的节点偏心率:
featureSet.nodesEccentricity{1}
ans =
1 2
2 2
3 2
4 2
5 2
6 2
7 2
8 2
9 2
我认为这对我有用,我希望它对其他人也有用。谢谢大家。