Julia:方法和DataArrays.DataArray

时间:2016-09-28 11:41:40

标签: julia

我想用DataArrays.DataArray fun1作为唯一参数编写函数yy可以是整数或浮点数(以向量或矩阵形式)。

我试图遵循我在stackoverflow(Functions that take DataArrays and Arrays as arguments in Julia)和官方文档(http://docs.julialang.org/en/release-0.5/manual/methods/)中找到的建议。但是,我无法编写一个灵活的代码来处理y周围的不确定性。

我想要(但能够处理数值DataArrays.DataArray):

function fun1(y::Number)
   println(y);
end

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

可以定义一个选项:

fun1{T<:Number}(yvec::DataArray{T}) = foreach(println,yvec)

然后,

using DataArrays
v = DataArray(rand(10))
w = DataArray(rand(1:10,10))
fun1(v)
#
# elements of v printed as Flaot64s
#
fun1(w)
#
# elements of w printed as Ints
#

需要注意的一个微妙但反复出现的点是Julia参数类型的不变性,这需要定义参数函数。查看有关类型的文档应该澄清这个概念(http://docs.julialang.org/en/release-0.4/manual/types/#types)。