如何通过理解在朱莉娅中重新创建这个双对角矩阵?
1 0 0
-1 1 0
0 -1 1
0 0 -1
Run Code Online (Sandbox Code Playgroud)
使用理解创建一个密集的数组,它可以是非正方形:
julia> M = 4; N = 3;
[i==j ? 1 : i==j+1 ? -1 : 0 for i = 1:M, j=1:N]
4x3 Array{Int64,2}:
1 0 0
-1 1 0
0 -1 1
0 0 -1
Run Code Online (Sandbox Code Playgroud)
或者您可以使用Bidiagonal方阵:
julia> M = 4;
Bidiagonal(ones(Int, M), -ones(Int, M-1), false) # false means that it's not an upper-diagonal
4x4 Bidiagonal{Int64}:
1 0 0 0
-1 1 0 0
0 -1 1 0
0 0 -1 1
Run Code Online (Sandbox Code Playgroud)
后者有一些专门的线性代数方法,可以使它更有效.