Код: Выделить всё
0 0 -0.105961 0.00000
1 0 -1.06965 0.00000
1 1 -0.0187213 -0.240237
2 0 -0.124695 0.00000
2 1 -0.178982 0.0633255
2 2 0.760988 -0.213796
3 0 -1.96695 0.00000
3 1 0.0721285 0.0491248
3 2 -0.560517 0.267733
3 3 -0.188732 -0.112053
4 0 -0.0205364 0.00000
⋮ ⋮ ⋮ ⋮
40 30 0.226833 -0.733674
40 31 0.0444837 -0.249677
40 32 -0.171559 -0.970601
40 33 -0.141848 -0.137257
40 34 -0.247042 -0.902128
40 35 -0.495114 0.322912
40 36 0.132215 0.0543294
40 37 0.125682 0.817945
40 38 0.181098 0.223309
40 39 0.702915 0.103991
40 40 1.11882 -0.488252
Мы можем сделать некоторые предположения: массивы имеют нижнюю треугольную форму (т. е. существуют только значения ( или не равны нулю) для j
Текущая реализация предполагает, что максимальное значение i и j равно 40, и действует следующим образом: (минимальный рабочий пример Джулии):
Код: Выделить всё
using OffsetArrays
using DelimitedFiles: readdlm
n = 40
p = zeros(0:n, 0:n)
q = zeros(0:n, 0:n)
open(filename) do infile
for i = 0:n
for j = 0:i
line = readline(infile)
arr = readdlm(IOBuffer(line))
p[i,j] = arr[3]
q[i,j] = arr[4]
end
end
end
Однако я ищу решение, которое делает меньше предположений о файле данных (возможно, только нижний треугольный вариант и увеличивающий индекс). Каким был бы «естественный» способ сделать это в Julia или Python?
Подробнее здесь: https://stackoverflow.com/questions/783 ... -text-file