假设我有一个以这种方式定义的函数:
function InCylinder(cpt1, cpt2, radius, pt)
# return if pt is inside cylinder defined by cpt1,cpt2,radius
end
我想将此函数应用于矩阵中的所有点,如下所示:
testM = rand(3,100)
我发现技术上可以使用一个名为mapslices
的函数将我的点从矩阵传递给函数。这应该是这样的:
mapslices(InCylinder,testM,1)
您可以想象,这不起作用,因为InCylinder
需要更多(静态)输入值。我希望避免将这些复制到矩阵中,因为cpt1
,cpt2
和radius
不会更改pt
中的所有testM
。
如何在没有太多冗余的情况下将cpt1
,cpt2
和radius
传递到InCylinder
?
PS:我知道迭代矩阵是一个选项,但这不是回答我的问题。
答案 0 :(得分:2)
尝试使用匿名函数:
mapslices(x -> InCylinder(cpt1, cpt2, radius, x), testM, 1)