我有一個歸一化概率的3x3x3矩陣(MP)(總和爲1)。當我運行樣本(27,1,MP,替換= T)時,它返回1到27之間的一個整數,可能是矩陣的順序索引。我想知道哪個矩陣元素根據元素索引(例如行號,列號,z號)。當構建一個N維數組(在這種情況下N = 3)時,如何確定元素的順序?換句話說,如果我使用N維數組並將所有元素放入列表中,如何將列表映射到N維元素?抽樣概率列表返回一個位置。如何將該位置轉換爲元素索引?
1
A
回答
3
使用which
,參數arr.ind=TRUE
返回數組索引。
m <- array((1:27)*10, dim=c(3,3,3))
x <- sample(27, 1)
x
# [1] 20
which(m == m[x], arr.ind=TRUE)
# dim1 dim2 dim3
# [1,] 2 1 3
0
從技術上講,它只是一個矩陣,如果它是二維的。你有什麼是一個三維數組。如果你只是嘗試:
array(1:27, dim = c(3, 3, 3))
, , 1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
, , 2
[,1] [,2] [,3]
[1,] 10 13 16
[2,] 11 14 17
[3,] 12 15 18
, , 3
[,1] [,2] [,3]
[1,] 19 22 25
[2,] 20 23 26
[3,] 21 24 27
所以你可以從打印出來看到哪個索引對應哪個連續的值。例如,序列1:27中的項目20在[2,1,3]處。順序先通過列計數,然後按行計算矩陣。知道這一點,你不必擔心保持索引。你可以隨時重新創建你的數組。此外,如果你只是想品嚐真正的項目,你可以做到以下幾點:
y <- array(1:27, dim = c(3, 3, 3))/sum(1:27) # an array like yours
sample(y, 1)
或者,如果你想只是打破你的整個陣列可以嘗試sample(y)
。
順便說一句,如果你真的想要做你似乎表明的東西,當運行樣品使用sample.int
。它具有更高的性能。
+0
太棒了。謝謝。很有幫助。 –
相關問題
- 1. 返回一個元素的位置Clojure
- 2. 返回索引位置
- 3. 使用位置返回一個列表元素
- 4. 陣列索引位置中的元素
- 5. Python給定位置,返回2d列表中該位置的值?
- 6. 如何在必要位置將序列屬性轉換爲單個元素?
- 7. 如何修改lambda語句以從列表索引位置開始並返回該位置
- 8. 可以搜索列表框並返回索引位置嗎?
- 9. 絕對位置的概率
- 10. 如何設置元素的位置等於另一個元素的位置?
- 11. 應該返回一個位置但返回空位置的自定義類
- 12. jQuery:將元素從一個位置滑動到某個位置
- 13. PHP - 如果表A的值與表B的值位於同一位置(索引),我該如何返回true?
- 14. 如何將屏幕位置轉換爲等距位置
- 15. 如何使用轉換將元素位置從x1轉換爲x2?
- 16. 返回給定位置的元素(但它不在該位置開始!)
- 17. scrollTop()返回元素下的位置
- 18. 在列表中查找並返回位置索引處的值
- 19. 從基於位置的列表返回頂級元素
- 20. 如何從核心位置返回的位置檢索地址
- 21. 排序:返回一個數組,每個元素的新位置
- 22. 將iframe位置設置爲$ _GET元素中的位置
- 23. 如何將索引轉換爲列表?
- 24. 將元素的位置綁定到另一個元素的位置
- 25. 函數將從位置轉換爲元素
- 26. 如何在索引位置替換列表中的值?
- 27. 將鼠標位置轉換爲方向並返回
- 28. jQuery切換元素位置
- 29. jQuery - 交換元素位置
- 30. 如何將[搜索]結果作爲文件位置返回?
非常好。正是我在找的東西。這個答案,加上我收到的第二個答案,將爲我提供我需要的解決方案。謝謝! –