我正在编写一个方法,它接受二维数组的双精度数和一个int行数作为参数,并返回给定行中元素的最高值。
它看起来像这样:
function getHighestInRow(A, i)
return(maximum(A[:i,:]))
end
我遇到的问题是当我用
切片时A[:i,:]
我收到参数错误,因为:i
会使i
得到不同的处理。
代码在
的另一个方向工作A[:,i,:]
有没有办法逃脱结肠?以便i
在冒号后被视为变量?
答案 0 :(得分:3)
你对结肠做了一些奇怪的事。在这种情况下,您使用的是:i
符号,而不是i
的值。只需getHighestInRow(A,i) = maximum(A[i,:])
即可。
编辑:正如Dan Getz在关于这个问题的评论中所说,getHighestInRow(A,i) = maximum(@view A[i,:])
更有效率,因为切片将分配一个临时不必要的数组。