用变量切片多维数组

时间:2017-10-17 14:55:23

标签: arrays multidimensional-array indexing julia slice

我正在编写一个方法,它接受二维数组的双精度数和一个int行数作为参数,并返回给定行中元素的最高值。

它看起来像这样:

function getHighestInRow(A, i)
        return(maximum(A[:i,:]))
end

我遇到的问题是当我用

切片时
A[:i,:]

我收到参数错误,因为:i会使i得到不同的处理。

代码在

的另一个方向工作
A[:,i,:]

有没有办法逃脱结肠?以便i在冒号后被视为变量?

1 个答案:

答案 0 :(得分:3)

你对结肠做了一些奇怪的事。在这种情况下,您使用的是:i符号,而不是i的值。只需getHighestInRow(A,i) = maximum(A[i,:])即可。

编辑:正如Dan Getz在关于这个问题的评论中所说,getHighestInRow(A,i) = maximum(@view A[i,:])更有效率,因为切片将分配一个临时不必要的数组。