如何在mapslices中为引用的函数添加其他(静态)输入参数?

时间:2016-04-07 13:24:11

标签: julia

假设我有一个以这种方式定义的函数:

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需要更多(静态)输入值。我希望避免将这些复制到矩阵中,因为cpt1cpt2radius不会更改pt中的所有testM

如何在没有太多冗余的情况下将cpt1cpt2radius传递到InCylinder

PS:我知道迭代矩阵是一个选项,但这不是回答我的问题。

1 个答案:

答案 0 :(得分:2)

尝试使用匿名函数:

mapslices(x -> InCylinder(cpt1, cpt2, radius, x), testM, 1)