我试图在Julia中找到一个较低的三角矩阵,并将该矩阵放入零矩阵(替换零)。然后,我想将下三角矩阵设置为等于c。在R中,它看起来像这样:
mat <- matrix(0, n,n)
mat[lower.tri(mat, diag=FALSE)] <- c
,其输出如下所示:
[,1] [,2]
[1,] 0.0000000 0
[2,] 0.4646787 0
我能够在Julia中制作零点矩阵,但是我不知道如何将下三角函数与c值一起放置在它的内部。
答案 0 :(得分:5)
这可能是朱莉娅中最接近的对等物:
julia> n = 3; c = 0.4646787; A = zeros(n,n);
julia> A[tril!(trues(size(A)), -1)] .= c;
julia> A
3×3 Array{Float64,2}:
0.0 0.0 0.0
0.464679 0.0 0.0
0.464679 0.464679 0.0
当然,Julia的一大优点是您不必担心几乎要创建这些巧妙的单线。编写简单的for
循环非常容易,并且应该具有类似的性能:
julia> for j in 1:size(A, 2), i in j+1:size(A, 1)
A[i, j] = c
end
julia> A
3×3 Array{Float64,2}:
0.0 0.0 0.0
0.464679 0.0 0.0
0.464679 0.464679 0.0