gpt4 book ai didi

Julia :沿数组中的列找到最大值

转载 作者:行者123 更新时间:2023-12-04 17:24:18 24 4
gpt4 key购买 nike

假设我们有一个这样定义的数组:

a=[1 2; 3 4; 5 5; 7 9; 1 2];

在 Matlab 中,我们可以通过以下方式找到最大值:
 [x y] = max(a)
x =
7 9

在 Julia 中,我们可以使用:
  a=[1 2; 3 4; 5 5; 7 9; 1 2]
findmax(a,1)

返回:
 ([7 9],

[4 9])

但是,我不仅对找到这两列的 [7 9] 感兴趣,还对它们在每列中的相对位置感兴趣,例如 [4, 4]。当然,我可以写更多的代码行,但是我可以直接用findmax来做吗?

最佳答案

findmax 返回的第二个矩阵是整个数组中最大值位置的线性索引。你想要每一列中的位置;为此,您可以使用 ind2sub 将线性索引转换为下标。 .然后下标元组的第一个元素是您的行索引。

julia> vals, inds = findmax(a, 1)
(
[7 9],

[4 9])

julia> map(x->ind2sub(a, x), inds)
1×2 Array{Tuple{Int64,Int64},2}:
(4,1) (4,2)

julia> map(x->ind2sub(a, x)[1], inds)
1×2 Array{Int64,2}:
4 4

关于 Julia :沿数组中的列找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43942166/

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