我试图在Julia中找到一个下三角矩阵,并将该矩阵放在一个零矩阵中(替换零).然后我想将下三角矩阵设置为等于值c.在R中,这看起来像这样:
mat <- matrix(0, n,n)
mat[lower.tri(mat, diag=FALSE)] <- c
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
[,1] [,2]
[1,] 0.0000000 0
[2,] 0.4646787 0
Run Code Online (Sandbox Code Playgroud)
我能够在Julia中创建零矩阵,但我不知道如何将lowertriangular函数与c值一起放在其中.
这可能是朱莉娅最接近的等价物:
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
Run Code Online (Sandbox Code Playgroud)
当然,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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
114 次 |
最近记录: |