2
A
回答
4
假多維度與特製關聯數組項:
declare -A ary
for i in 1 2 3; do
for j in 4 5 6; do
for k in 7 8 9; do
ary["$i,$j,$k"]=$((i*j*k))
done
done
done
for key in "${!ary[@]}"; do printf "%s\t%d\n" "$key" "${ary[$key]}"; done | sort
1,4,7 28
1,4,8 32
1,4,9 36
1,5,7 35
1,5,8 40
1,5,9 45
1,6,7 42
1,6,8 48
1,6,9 54
2,4,7 56
2,4,8 64
2,4,9 72
2,5,7 70
2,5,8 80
2,5,9 90
2,6,7 84
2,6,8 96
2,6,9 108
3,4,7 84
3,4,8 96
3,4,9 108
3,5,7 105
3,5,8 120
3,5,9 135
3,6,7 126
3,6,8 144
3,6,9 162
我用sort
因爲assoc.array的鍵沒有內在的順序。
2
您可以使用關聯數組如果你是bash足夠新:
unset assoc
declare -A assoc
assoc["1.2.3"]=x
但是,我寧願切換到支持多維數組(例如Perl中)的語言。
1
和C一樣,您可以使用偏移來模擬多維數組。
#! /bin/bash
xmax=100
ymax=150
zmax=80
xymax=$((xmax*ymax))
vol=()
for ((z=0; z<zmax; z++)); do
for ((y=0; y<ymax; y++)); do
for ((x=0; x<xmax; x++)); do
((t = z*xymax+y*xmax+x))
if ((vol[t] == 0)); then
((vol[t] = vol[t-xymax] + vol[t-ymax] + vol[t-1]))
fi
done
done
done
相關問題
- 1. 如何製作多維陣列Bash
- 2. 複製3D陣列
- 3. 如何在LC3中製作2D陣列
- 4. 在Numpy中製作3D陣列的2D面具
- 5. 如何在3D numpy的陣列
- 6. 如何在Python中製作3D圖?
- 7. 如何在Flex中製作3D牆庫?
- 8. 如何在Java中製作3D圖形?
- 9. 從3D陣列中減去2D陣列
- 10. 如何從matlab中的3d矩陣製作視頻
- 11. 3D洪水在3D陣列(爪哇)
- 12. 在陣列的bash
- 13. 如何爲陣列工作制作NSSortDescriptor?
- 14. OpenCL中的3D陣列
- 15. 如何製作3D DIV
- 16. Java通過System.arraycopy複製陣列3d()
- 17. CUDA 3D陣列分配和複製
- 18. 你如何壓平3D陣列?
- 19. numpy.tile爲3D陣列
- 20. 搜索3d陣列
- 21. 指向3D陣列
- 22. 如何將3D陣列映射到線性陣列?
- 23. 3D陣列C++使用INT []操作
- 24. 如何使用R繪製3D矩陣的3D表面
- 25. 在PHP中合併3個陣列爲3d陣列
- 26. 從2D陣列生成3D陣列
- 27. 如何在3D矩陣中使用數組作爲索引?
- 28. 如何製作多維鋸齒陣列?
- 29. 陣列在bash shell腳本
- 30. 如何在bash中回顯陣列中的所有值
好的做法是在使用'declare'之前'取消設置assoc',因爲如果assoc'已經是一個非關聯數組,它會導致錯誤。 (即'foo =(1,2,3); declare -A foo'導致錯誤) – amphetamachine 2014-10-30 15:04:21