【发布时间】:2016-08-19 12:52:47
【问题描述】:
我的列数等于行数。并且对角线等于零。如何构建这个矩阵?
#mat
# [,1] [,2] [,3] [,4]
#[1,] 0 NA NA NA
#[2,] 1 0 NA NA
#[3,] 2 4 0 NA
#[4,] 3 5 6 0
我试过了
x=rand(4,4)
4x4 Array{Float64,2}:
0.60064 0.917443 0.561744 0.135717
0.106728 0.72391 0.0894174 0.0656103
0.410262 0.953857 0.844697 0.0375045
0.476771 0.778106 0.469514 0.398846
c=LowerTriangular(x)
4x4 LowerTriangular{Float64,Array{Float64,2}}:
0.60064 0.0 0.0 0.0
0.106728 0.72391 0.0 0.0
0.410262 0.953857 0.844697 0.0
0.476771 0.778106 0.469514 0.398846
但我正在寻找这样的东西
c=LowerTriangular(x)
4x4 LowerTriangular{Float64,Array{Float64,2}}:
0.0 NA NA NA
0.106728 0.0 NA NA
0.410262 0.953857 0.0 NA
0.476771 0.778106 0.469514 0
对角线应该为零。
【问题讨论】:
-
仅供参考,julia 不使用 NA 值。我们有 NaN
-
另外,请考虑使用零而不是 NA(或 NaN)。为什么? 1. 线性代数的含义在使用 NA 时大部分会丢失,这将阻止对现有线性代数代码的任何使用。 2. 已知 NA 具有传染性并会产生错误。如果你再描述一下用例,这个选择可能会更清楚。