2015-09-26 53 views
1

我有一個像這樣的多維數組,這是一組緯度和經度。多維數組到單個變量

multi = [[12.96145, 77.58408],[12.96219, 77.58447],[12.96302, 77.58489],[12.96316, 77.58496],[12.96348, 77.58511],[12.96356, 77.58512],[12.96363, 77.5851],[12.96372, 77.58506],[12.96376, 77.58497],[12.96374, 77.58479]] 

我想把上述數組轉換成單獨的變量,例如以下:

lat1 = 12.96145 
lon1 = 77.58408 
lat2 = 12.96219 
lon2 = 77.58447 
. 
. 

我試圖通過一個漫長的過程,以達到上述像下面。我希望這樣做肯定會有更好的方式。

l1,l2,l3,l4,l5,l6,l7,l8,l9,l10 = multi 

lat1 = l1.first 
lon1 = l1.last 
lat2 = l2.first 
lon2 = l2.last 
. 
. 
+0

爲什麼不直接從數組中調用?這不是很容易嗎? – Charles

+0

@ c650抱歉,我沒有明白你的意思。如果你給我多一點提示,我一定會努力實現。 – Aparichith

+0

而不是將每個值放入一個變量,爲什麼不直接從數組中調用? – Charles

回答

1
lat1, lon1, 
lat2, lon2, 
... 
latn, lonn, 
= multi.flatten 

(lat1, lon1), 
(lat2, lon2), 
... 
(latn, lonn), 
= multi 
1

也可賦值實例變量是這樣的:

multi.each_with_index do |pair, i| 
    instance_variable_set("@lat#{i%multi.size+1}", pair.first) 
    instance_variable_set("@lon#{i%multi.size+1}", pair.last) 
    end 

然後參考變量,以便:@lat1@lon1,...,@latn@lonn