gpt4 book ai didi

julia - 更改 Julia 数组中的值并得到奇怪的结果?

转载 作者:行者123 更新时间:2023-12-03 20:25:26 25 4
gpt4 key购买 nike

我在 Julia 1.4.2 中有以下代码

temp = zeros(Int64, length(input_string))
i = 1

while i< length(input_string)
temp[i] = input_string[i]
i += 1
end


使用 input_string = "200"我希望这会返回 temp = [2 0 0] ,但出于某种原因,我返回了一个 3 元素的 Array{Int64,1} 值 [50, 48, 0].
有没有办法让我理解这一点?

最佳答案

这有几件事:

  • 索引一个字符串( input_string[i] )会给你一个类型为 Char 的字符.
  • 当更新数组的内容 ( temp[i] = ... ) 时,Julia 将右侧转换为与数组 temp 相同的元素类型.
  • 转换 Char (右手边)到 Int (这是 temp 的元素类型)给出与字符对应的 ASCII 值。

  • 字符串 "200"由字符 '2' 组成, '0''0' ,其中 ASCII 值是 50 , 4848所以我们期望 temp成为 [50, 48, 48]但是循环有一个错误,因为它应该检查 i <= length(input_string) ,所以最后一个元素是 0有没有从初始化。

    这是我为此编写的代码:
    function str_to_ints(str)
    r = Int[]
    for c in str
    ci = parse(Int, c)
    push!(r, ci)
    end
    return r
    end

    例子:
    julia> str_to_ints("200")
    3-element Array{Int64,1}:
    2
    0
    0

    关于julia - 更改 Julia 数组中的值并得到奇怪的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62352674/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com