質問するログイン新規登録

質問編集履歴

2

事例を追加しました

2019/10/14 08:36

投稿

teefpc
teefpc

スコア112

title CHANGED
File without changes
body CHANGED
@@ -35,4 +35,113 @@
35
35
  }
36
36
  }
37
37
 
38
- ```
38
+ ```
39
+
40
+ 【追加質問です】
41
+ 6次元のデータを使った例です。
42
+ numpy の場合、out = x.transpose(0, 4, 5, 1, 2, 3) です。
43
+
44
+ ```JavaScript
45
+ <script>
46
+ // 例 x:入力 6次元配列(1x1x3x3x4x4)
47
+ // -> out :出力 6次元配列(1x4x4x1x3x3) へ軸変換
48
+
49
+ x=[
50
+ [[
51
+ // *
52
+ [
53
+ [
54
+ [1,1,1,1],
55
+ [1,1,1,1],
56
+ [1,1,1,1],
57
+ [1,1,1,1],
58
+ ],
59
+ [
60
+ [1,1,1,1],
61
+ [1,1,1,1],
62
+ [1,1,1,1],
63
+ [1,1,1,1],
64
+ ],
65
+ [
66
+ [1,1,1,1],
67
+ [1,1,1,1],
68
+ [1,1,1,1],
69
+ [1,1,1,1],
70
+ ],
71
+ ],
72
+
73
+ // **
74
+ [
75
+ [
76
+ [1,1,1,1],
77
+ [1,1,1,1],
78
+ [1,1,1,1],
79
+ [1,1,1,1],
80
+ ],
81
+ [
82
+ [1,1,1,1],
83
+ [1,1,1,1],
84
+ [1,1,1,1],
85
+ [1,1,1,1],
86
+ ],
87
+ [
88
+ [1,1,1,1],
89
+ [1,1,1,1],
90
+ [1,1,1,1],
91
+ [1,1,1,1],
92
+ ],
93
+ ],
94
+ // ***
95
+ [
96
+ [
97
+ [1,1,1,1],
98
+ [1,1,1,1],
99
+ [1,1,1,1],
100
+ [1,1,1,1],
101
+ ],
102
+ [
103
+ [1,1,1,1],
104
+ [1,1,1,1],
105
+ [1,1,1,1],
106
+ [1,1,1,1],
107
+ ],
108
+ [
109
+ [1,1,1,1],
110
+ [1,1,1,1],
111
+ [1,1,1,1],
112
+ [1,1,1,1],
113
+ ],
114
+ ],
115
+
116
+ ]]
117
+ ]
118
+
119
+ console.log(x)
120
+
121
+ let out = []
122
+ for (let d0 = 0 ; d0 < x.length; d0++){//1
123
+ out[d0] = []
124
+ for (let d1 = 0 ; d1 < x[0][0][0][0].length ; d1++){//4
125
+ out[d0][d1] = []
126
+ for (let d2 = 0 ; d2 < x[0][0][0][0][0].length ; d2++){//4
127
+ out[d0][d1][d2] = []
128
+ for (let d3 = 0 ; d3 < x[0].length ; d3++){//1
129
+ out[d0][d1][d2][d3] = []
130
+ for (let d4 = 0 ; d4 < x[0][0].length ; d4++){//3
131
+ out[d0][d1][d2][d3][d4] = []
132
+ for (let d5 = 0 ; d5 < x[0][0][0].length ; d5++){//3
133
+ console.log(`out[${d0}][${d1}][${d2}][${d3}][${d4}][${d5}] = ${x[d0][d4][d5][d1][d2][d3]}`);
134
+ out[d0][d1][d2][d3][d4][d5] = x[d0][d4][d5][d1][d2][d3]
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ console.log(out)
142
+ </script>
143
+ ```
144
+
145
+ 実行すると、
146
+ Uncaught TypeError: Cannot read property '0' of undefined
147
+ のエラーでストップします。

1

例題の追加

2019/10/14 08:36

投稿

teefpc
teefpc

スコア112

title CHANGED
File without changes
body CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  以下のようなn次元配列A (1x2x3x4)を 軸を入れ替えて 例えばn次元配列[3x4x1x2]にするのが transposeメソッドですが、これをfor文で書くとどうなりますか?
4
4
 
5
+ ```JavaScript
5
-
6
+ // x:入力
6
- 配列 A=[
7
+ x=[
7
8
  [
8
9
  [
9
10
  [1,2,3,4],
@@ -16,4 +17,22 @@
16
17
  [9,10,11,12],
17
18
  ],
18
19
  ]
19
- ]
20
+ ]
21
+
22
+ // 出力:out
23
+ // 初期化
24
+ let out = []
25
+ for (let d0 = 0 ; d0 < x[0][0].length; d0++){
26
+ out[d0] = []
27
+ for (let d1 = 0 ; d1 < x[0][0][0].length ; d1++){
28
+ out[d0][d1] = []
29
+ for (let d2 = 0 ; d2 < x.length ; d2++){
30
+ out[d0][d1][d2] = []
31
+ for (let d3 = 0 ; d3 < x[0].length ; d3++){
32
+ out[d0][d1][d2][d3] = 0
33
+ }
34
+ }
35
+ }
36
+ }
37
+
38
+ ```