按变量切片多维数组



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

它看起来像这样:

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

我遇到的问题是当我用

A[:i,:]

我收到一个参数错误,因为:i使i得到不同的对待。

代码在另一个方向上工作

A[:,i,:]

有没有办法转义冒号? 这样i就被当作冒号后面的变量?

你正在用冒号做一些奇怪的事情。在这种情况下,您使用的是符号:i而不是 i 的值。只是getHighestInRow(A,i) = maximum(A[i,:])应该工作。

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

最新更新