配列にゼロを埋め込もうとしていますが、これを迅速に行うための簡潔な方法が見つかりません。配列がある場合 x = [1,2,3 ; 4,5,6 ; 7,8,9] matlab でコマンドを使用できます
y = [zeros(1,3+2);zeros(3,1),x,zeros(3,1);zeros(1,3+2)]
[0,0,0,0,0の望ましい出力配列を与える; 0,1,2,3,0; 0,4,5,6,0; 0,7,8,9,0; 0,0,0,0,0]
ただし、これまでのところ、迅速なプレイグラウンドでは、各要素を個別に参照して新しい配列を正しく形成することしかできませんでした。
x を入力として、y を出力としてこれまでに試した方法は、最初は matlab に似ていて、
var x = [[1,2,3,],[4,5,6],[7,8,9]]
var y = [[0,0,0,0,0],[0,x[0],0],[0,x[1],0],[0,x[2],0],[0,0,0,0,0]]
2つ目はループ
for i in 0 ..< x.count + 1 {
if i == 0 || i == x.count - 1 {
y[i] = [0,0,0,0,0]
}
else{
y[i] = [0, x[i-1] ,0]
}
}
Xcode プレイグラウンド プレビューの標準配列のように見えるのではなく、これが出力されます。
[[0, 0, 0, 0, 0], [0, […], 0], [0, 0, 0, 0, 0], [0, […], 0], [0, 0, 0, 0, 0]]
コードを使用して、コンソールにも非常に奇妙に出力されます
for i in 0 ..< y.count {
print("\(y[i])")
}
出力は
(
0,
0,
0,
0,
0
)
(
0,
(
1,
2,
3
),
0
)
(
0,
0,
0,
0,
0
)
(
0,
(
7,
8,
9
),
0
)
(
0,
0,
0,
0,
0
)
予想に反して
[0, 0, 0, 0, 0]
[0, 1, 2, 3, 0]
[0, 4, 5, 6, 0]
[0, 7, 8, 9, 0]
[0, 0, 0, 0, 0]
これを行う最善の方法は何ですか?