gpt4 book ai didi

matrix - 如何将 not 运算符应用于 Julia 中的所有矩阵元素?

转载 作者:行者123 更新时间:2023-12-01 07:03:48 25 4
gpt4 key购买 nike

我需要将“非”运算符应用于 Julia 中的零和一矩阵。
在 Matlab 中,我会这样做:

A=not(B);

在 Julia 我尝试这样做:
A = .~ B;


A = .! B;

它应该将零变为 1,将 1 变为零,但结果我得到错误,或者所有矩阵元素都是一些我没有输入的负数。
提前致谢!

最佳答案

A = .!B 的问题是逻辑否定,!(::Int64) , 不是为整数定义的。这是有道理的:应该说,!3合理给?

既然您要执行逻辑运算,那么开始使用整数是否有更深层次的原因?

您也许可以使用 BitArray相反,它的效率要高得多,并且应该表现得像一个普通的 Array在大多数操作中。

您可以轻松地将整数矩阵转换为 BitArray .之后,应用逻辑无法按预期工作。

julia> A = rand(0:1, 5,5)
5×5 Array{Int64,2}:
0 0 0 1 1
0 1 0 0 1
0 1 1 1 0
1 1 0 0 0
1 1 1 0 0

julia> B = BitArray(A)
5×5 BitArray{2}:
0 0 0 1 1
0 1 0 0 1
0 1 1 1 0
1 1 0 0 0
1 1 1 0 0

julia> .!B
5×5 BitArray{2}:
1 1 1 0 0
1 0 1 1 0
1 0 0 0 1
0 0 1 1 1
0 0 0 1 1

这里的关键部分是 eltype 的元素类型( BitArray )是 Bool ,对于它的否定显然是明确定义的。从这个意义上说,你也可以使用 B = Bool.(A)将所有元素转换为 bool 值。

关于matrix - 如何将 not 运算符应用于 Julia 中的所有矩阵元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com