下三角矩阵等于Julia中的值

时间:2018-06-27 17:16:59

标签: julia

我试图在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值一起放置在它的内部。

1 个答案:

答案 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