Julia 我得到了我不知道的边界错误();我不知道如何修理

Julia 我得到了我不知道的边界错误();我不知道如何修理,julia,Julia,我得到了错误BoundsError(),然后说“在setindex中!在array.jl.310(重复2次)“我不知道为什么 已经打开了一个文件,并使用txt文件将一些字符串转换为变量,但我只是在本节中遇到了问题,所以尝试将其放入函数中,但没有乐趣 function electronDensityFunction() z=1 y=1 x=1 for i = 1:arraySizeBy6 # As data in 6 colums in .txt file electronD

我得到了错误BoundsError(),然后说“在setindex中!在array.jl.310(重复2次)“我不知道为什么

已经打开了一个文件,并使用txt文件将一些字符串转换为变量,但我只是在本节中遇到了问题,所以尝试将其放入函数中,但没有乐趣

 function electronDensityFunction() 

 z=1
 y=1
 x=1

  for i = 1:arraySizeBy6 # As data in 6 colums in .txt file
  electronDensityString = readline(f)
  electronDensityArray = split(electronDensityString,;) # split string into array

for j = 1:6
  electronDensitytTempString  = electronDensityArray[j]
  electronDensitytTempFloat = parsefloat(Float64,electronDensitytTempString) # make string a float

  #fills z first then y then x 
    if z ==zSize
    y=y+1
    z=0
  else
    z=z+1
  end
  if y==ySize
    x=x+1
    y=0
  end
  electronDensity[x,y,z] = electronDensitytTempFloat
end
end
end

electronDensityFunction()

函数执行从文本文件读取数据矩阵的任务,更好的方法是使用此函数。检查有关其用例的更多详细信息,然后就可以将函数应用于结果矩阵,并创建所需维度的数组。

一些令人担忧的事情包括
拆分(ElectronidensityString,;)
(应该是
”;“
我相信),但我也看到了这一点

if z ==zSize
  y=y+1
  z=0
else
  z=z+1
end
if y==ySize
  x=x+1
  y=0
end
electronDensity[x,y,z] = electronDensitytTempFloat

将定期将索引设置为0,这是不正确的。我想您可能希望将它们设置为1而不是0,但是如果没有数据集(或数据集的样本),我们无法再现错误。

julia数组索引不是基于零的吗?@500否,数组索引从1开始@jacques,你在预分配
电密度
数组吗?谢谢。给小费。我试过了,它能工作,也就是说,它没有给出一个界限错误。重塑()的工作顺序是什么。但我认为这是重塑的第一步。我的数据是按水平顺序排列的。首先,是否有办法对其进行重塑。非常感谢