我有一个 n×n 矩阵(n 非常大),我想检查它在 Julia 中是否为零矩阵。我尝试的方法之一如下
using BenchmarkTools
using Random
A = rand(2000,2000); # n = 2000 for instance.
@btime all($A .== 0)
Run Code Online (Sandbox Code Playgroud)
其输出到
2.380 ms (4 allocations: 492.59 KiB)
false
Run Code Online (Sandbox Code Playgroud)
还有其他有效的方法可以达到同样的目的吗?
有一个专用函数用于查明对象是否是“附加身份”,即零。这个函数也适用于数组:
iszero(A)
Run Code Online (Sandbox Code Playgroud)
在内部,这是作为 实现的all(iszero, A),但我更喜欢iszero(A)它,因为它更通用。
在某些情况下,例如对于稀疏数组,iszero(A)可能比 快得多all(iszero, A),因为后者将迭代每个元素,而iszero(A)仅迭代结构上的非零元素。
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |