我有一个带键的字典,如下所示:
testdict = Dict{Array{Int64,1},Float64}([1,3,1] => 0.0, [2,3,1] => 0.0, [1,3,2] => 0.0, [2,3,2] => -2.64899e-16, [2,1,2] => 0.858307, [1,2,1] => 0.0, [1,2,2] => 0.0, [2,2,1] => 0.0, [2,2,2] => 0.65796, [2,1,1] => -5.81556e-16, [1,1,2] => -3.50541e-16, [1,1,1] => 0.0)
这些键在范围和长度方面都有很大差异,它们在函数开头的数组中初始化我正在编写......它可能看起来像
[2,3,2]
上面的字典......,
或
[10,3,50,60]
创建一个带键的字典
[1,1,1,1], [1,1,1,12] ... , [10, 3, 50, 59], [10,3, 50, 60]
我需要完成的是通过
创建一个多维数组result_array = Array(Float64, tuple([2,3,2])
但是我需要用字典中的值填充数组, 所以我需要将元素[1,1,1]设置为
result_array[1,1,1] = 0.0
如何使用字典中的键设置result_array
的索引及其所谓的值?
答案 0 :(得分:4)
按键将result_array[[1,1,1]...]
变为result_array[1,1,1]
。
testdict = Dict{Array{Int64,1},Float64}([1,3,1] => 0.0, [2,3,1] => 0.0, [1,3,2] => 0.0, [2,3,2] => -2.64899e-16, [2,1,2] => 0.858307, [1,2,1] => 0.0, [1,2,2] => 0.0, [2,2,1] => 0.0, [2,2,2] => 0.65796, [2,1,1] => -5.81556e-16, [1,1,2] => -3.50541e-16, [1,1,1] => 0.0)
result_array = Array(Float64,2,3,2)
for (k,v) in testdict
result_array[k...] = testdict[k]
end