了解该步骤是否会成为Julia语言中的零错误?

时间:2019-06-05 16:02:19

标签: julia

我需要一个UnitRanges的向量,如下所示: [2:5,3:6,4:7,5:8]

当我尝试运行此(2:5):( 5:8)时,出现错误“ ArgumentError:step不能为零。”

是否可以使用UnitRange本身创建UnitRange数组?

1 个答案:

答案 0 :(得分:2)

听起来您想对两个参数中的元素进行映射广播 devtool。只需明确地做:

:

现在,理想情况下,您也可以将其写为julia> map(:, 2:5, 5:8) 4-element Array{UnitRange{Int64},1}: 2:5 3:6 4:7 5:8 —您可以点(2:5) .: (5:8)运算符来广播它—但是由于:用于很多事情并且由于这不是一个很常见的用例,因此我们尚未启用:的点对点。但是,您可以使用非前缀形式并在其上加上点号:

:

对于您得到的错误消息,这是因为julia> (:).(2:5, 5:8) 4-element Array{UnitRange{Int64},1}: 2:5 3:6 4:7 5:8 要做的第一件事是确定长度,假设其两个参数是标量。为此,它从第二个参数中减去第一个参数:

:

之所以失败,是因为它试图创建有效julia> (5:8) - (2:5) ERROR: ArgumentError: step cannot be zero 且长度为4的步距。