在函数中传递两个数组

时间:2017-10-30 03:19:30

标签: julia

我试图在带有for循环的函数中使用2个数组,但我不知道语法,因为互联网上没有例子。我编写了没有函数的代码,但如果将其转换为函数,我当然会感激。输出是数组价格和数组succrate。提前谢谢。

length_of_arrays = 101

lower_limit = 0
steps_per_unit = 1

price1 = 10

succrate1 = 5
succrate2 = 7

price = Array{Float64, 1}(101)
succrate = Array{Float64, 1}(101)

for pr_A = 1:1:length_of_arrays

price[pr_A] = lower_limit + ((pr_A-1) / steps_per_unit)

if price[pr_A] == price1
  succrate[pr_A] = succrate1
else
  succrate[pr_A] = succrate2
end
end

2 个答案:

答案 0 :(得分:2)

传入数组没有特殊语法。只需将它们作为参数传递给其他任何东西。数组将在函数中被修改(为了标记这一点,我遵循了在名称中使用最终!的约定),因此不需要从函数中返回它们。

function calc_prices!(price, succrate, lower_limit, steps_per_unit, price1, succrate1, succrate2)
    for pr_A in eachindex(price)
        price[pr_A] = lower_limit + ((pr_A-1) / steps_per_unit)

        if price[pr_A] == price1
            succrate[pr_A] = succrate1
        else
            succrate[pr_A] = succrate2
        end
    end
end

len_of_arrays = 101
pri = Array{Float64, 1}(len_of_arrays)
succ = Array{Float64, 1}(len_of_arrays)

calc_prices!(pri, succ, 0, 1, 10, 5, 7)

println(pri[10])
println(succ[10])

答案 1 :(得分:0)

我在1中使用了i:length_of_array,因为嵌套for循环中的每个索引都产生了一个边界错误

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<a class="btn">select prev 4 consecutive elements</a>
<ul>
  <li> 1st 4</li>
  <li> 1st 4</li>
  <li> 1st 4</li>
  <li> 1st 4</li>
  <li> 2nd 4</li>
  <li> 2nd 4</li>
  <li class="selected"> 2nd 4</li>
  <li class="selected"> 2nd 4</li>
  <li class="selected"> 3rd 4</li>
  <li class="selected"> 3rd 4</li>
  <li> 3rd 4</li>
  <li> 3rd 4</li>
  <li> 4th 4</li>
  <li> 4th 4</li>
  <li> 4th 4</li>
  <li> 4th 4</li>
  <li> 5th 5</li>
</ul>

我很乐意得到关于每个指数如何起作用或关于笛卡尔指数的答案。

另外,如何从modifyarrays中调用succrate!功能到另一个功能?