matrix - 提取矩阵的下三角部分

标签 matrix julia

我想知道 Julia 中是否有命令或包允许我们直接提取矩阵的下三角形部分,不包括对角线。显然,我可以为此调用 R 命令(例如 gdata 包的 lowerTriangle ),但我想知道 Julia 是否有类似的东西。例如,假设我有矩阵

1.0    0.751   0.734    
0.751   1.0    0.948    
0.734  0.948    1.0

我不想创建一个下三角矩阵
NA     NA      NA     
0.751   NA      NA    
0.734  0.948    NA

但将矩阵的下部提取为数组:0.751 0.734 0.948

最佳答案

如果您可以创建下三角矩阵作为中间步骤,则可以使用逻辑索引和 tril!用一个额外的参数来获得你需要的东西。

julia> M = [1.0 0.751 0.734
0.751 1.0 0.948
0.734 0.948 1.0];
julia> v = M[tril!(trues(size(M)), -1)]
3-element Array{Float64, 1}:
0.751
0.734
0.948
trues调用返回一个 M 形状的数组,其中填充了 bool 值 true值。 tril!然后将其修剪为我们想要的矩阵部分。 tril 的第二个参数!告诉它从哪个超对角线开始,我们在这里使用它来避免前导对角线中的值。

我们使用它的结果对 M 进行索引,并返回一个具有所需值的数组。

关于matrix - 提取矩阵的下三角部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651781/

相关文章:

c++ - 如何在不使用 C++ OpenGL SuperBible 着色器的情况下使用变换矩阵?

php - 在php中创建二维矩阵

types - 如何制作为参数类型字段创建默认值的构造函数

performance - 运行 julia 函数的巨大内存分配?

macos - 安装 julia 语言

c - 如何在 OpenMP 中实现并行化

Mysql多变量线性回归

Matlab:每行或列的第一个非零元素

python - 如何在 Julia 中使用 PyCall 将 Python 输出转换为 Julia DataFrame

file-io - 在 Julia 1.0.0 中将大型数字输出保存到 native 文件