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. 製作3D陣列MATLAB
- 2. 3D陣列如何工作?
- 3. 如何製作多維陣列Bash
- 4. 複製3D陣列
- 5. 在python中繪製3d矢量(陣列)
- 6. 在3D陣列
- 7. 如何在LC3中製作2D陣列
- 8. 如何在陣列中製作卡片?
- 9. 如何製作陣列陣列?
- 10. 在Numpy中製作3D陣列的2D面具
- 11. 3D陣列不工作
- 12. 如何在3D numpy的陣列
- 13. 如何在flash中製作3D輪盤
- 14. 如何在Java中製作3D曲面?
- 15. 如何在Python中製作3D圖?
- 16. 如何在Java中製作3D圖形?
- 17. 如何在Flex中製作3D牆庫?
- 18. 3d陣列到2d陣列
- 19. 如何在單個圖上繪製多個3D陣列?
- 20. 從3D陣列中減去2D陣列
- 21. 如何從matlab中的3d矩陣製作視頻
- 22. PHP陣列Bash不工作
- 23. 3D洪水在3D陣列(爪哇)
- 24. 在陣列的bash
- 25. 如何爲陣列工作制作NSSortDescriptor?
- 26. 如何製作3D DIV
- 27. OpenCL中的3D陣列
- 28. 3D陣列的中值
- 29. 在3D numpy的陣列
- 30. CUDA 3D陣列分配和複製
好的做法是在使用'declare'之前'取消設置assoc',因爲如果assoc'已經是一個非關聯數組,它會導致錯誤。 (即'foo =(1,2,3); declare -A foo'導致錯誤) – amphetamachine 2014-10-30 15:04:21