Julia相当于Matlab的“逻辑”矩阵

时间:2019-10-27 23:10:06

标签: matrix boolean julia

是否存在与Matlab的“逻辑”矩阵等效的Julia,您可以用来标记矩阵中的某些位置,然后将其用于矩阵处理?

在matlab中,它看起来像这样:

A=magic(3);
C=eye(size(A));
C=logical(C);
M=A;
M(C)=0;

我需要在主对角线上保持零。在matlab中,我会这样做,但是在Julia中,没有“逻辑”矩阵。我搜索了朱莉娅等效物,但找不到任何东西。预先感谢!

1 个答案:

答案 0 :(得分:3)

您可以创建ArrayBitArrayBoolmost intents and purposes the same

例如

> using LinearAlgebra

>I(3)                            # `I()` is the identity matrix function 
3×3 Diagonal{Bool,Array{Bool,1}}:
 1  ⋅  ⋅
 ⋅  1  ⋅
 ⋅  ⋅  1

您可以使用它通过逻辑非运算符~ broadcasting将另一个矩阵中的元素清零,然后将另一个矩阵中的每个元素相乘(通过广播*与{ {1}}。

例如:

.*