julia - 如何在 Julia 中测试数组中的所有元素是否具有相同的值

标签 julia

我正在尝试编写一个简单的程序,使用 Julia 来测试数组的所有元素是否相同。在 Julia 中有一种简单的方法可以做到这一点吗?

最佳答案

allunique 测试数组的所有元素是否唯一。为了测试数组的所有元素是否相同,您可以编写例如:

function allequal(itr)
    local x
    isfirst = true
    for v in itr
        if isfirst
            x = v
            isfirst = false
        else
            isequal(x, v) || return false
        end
    end
    return true
end

现在你有

julia> allequal([1,2,3])
false

julia> allequal([1,2,1])
false

julia> allequal([1,1,1])
true

你可以写一个更短的函数,例如:

f1(itr) = length(Set(itr)) <= 1

但它可能会更慢(我没有运行基准测试)。

或者你可以这样写:

f2(itr) = length(itr) == 0 ? true : all(isequal(itr[1]), itr)

如果您的迭代器定义了 length 并支持索引。

关于julia - 如何在 Julia 中测试数组中的所有元素是否具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59426204/

相关文章:

dataframe - 在 Julia 函数中将表达式作为参数

dictionary - 带有自定义类型键的奇怪 Dict 行为

arrays - Julia 将图像从 URL 直接下载到内存中

plot - Julia:网格上分类数据的可视化

Julia 对微分方程积分 : MethodError: no method matching

dataframe - 在 Julia 中用另一个 DF 替换 DF 中的列

julia - Julia 中 String[] 和 Vector{String}[] 之间的区别

plot - 为什么我的 Julia 脚本在 Pluto 中不显示情节?

matrix - Julia 中矩阵列的平均值

julia - JuliaDB 缺少什么才能将其用作网站后端的生产数据库?