質問編集履歴
2
事例を追加しました
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
例題の追加
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
|
-
|
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
|
+
```
|