在for循环中使用增量

时间:2017-08-03 20:40:58

标签: julia

我正在尝试使用集合边界在Julia中运行for循环,其中fIr是相同长度的数组。我知道这是不正确的,但这是我想要做的事情的要点。

    a = zeros(1:length(fI))
    for i = 1:length(fI)
      a[i] = (fI[i+1] - fI[i])/(r[i+1] - r[i])
    end

如何在Julia中设置n + 1的增量?在其他地方,Haven没有找到答案。

如果我能澄清任何事情,请告诉我。我对这门语言还很陌生。

3 个答案:

答案 0 :(得分:3)

范围由start:stepsize:end指定。因此答案是for i = 1:(n+1):length(fI)

答案 1 :(得分:3)

我不完全确定你想做什么,但看起来你想根据其他变量中元素之间的差异创建一个新变量。如果这是您的使用案例,您可以使用diff,例如

fI, r = rand(10), rand(10)
a = diff(fI) ./ diff(r)

答案 2 :(得分:1)

你的代码会崩溃,因为最后一次" i"您访问超出数组长度

fI[i+1] = fI[length(fI)+1]


a = zeros(1:length(fI))
for i = 1:length(fI)
  a[i] = (fI[i+1] - fI[i])/(r[i+1] - r[i])
end

也许你想要以下

n = length(fI) - 1
a = zeros(1:n)
for i = 1:n
  a[i] = (fI[i+1] - fI[i])/(r[i+1] - r[i])
end