У меня есть файл с десятью отдельными столбцами данных, разделенных пробелами. Я написал следующий код (и это работает), но я чувствую, что есть более простой способ сделать то, что я делаю здесь:Ruby novice: Написание метода для чтения массивов mulitple из файла?
#Generate ten separate arrays in which to store the columns
c0 = []; c1 = []; c2 = []; c3 = []; c4 = [];
c5 = []; c6 = []; c7 = []; c8 = []; c9 = [];
#Append each item in each line to its own array
File.open(filename, 'r').each_line do |line|
line = line.strip.split(' ')
c0 << line[0]; c1 << line[1]; c2 << line[2]; c3 << line[3]; c4 << line[4];
c5 << line[5]; c6 << line[6]; c7 << line[7]; c8 << line[8]; c9 << line[9];
end
Я попытался написать метод для выполнения этой задачи, но я я совершенно не знаю, с чего начать. Я предполагаю, что существует более чистый способ инициализации n-ряда массивов, чем то, как я это сделал ... что такое «рубиновый» способ сделать это? Можно ли делать все, что я делаю здесь, в одном методе, который возвращает 10 массивов? Помощь/подсказки о том, как это сделать, будут очень признательны.
Я пробовал это в нескольких отдельных файлах. Я получил следующую ошибку: test.rb: 7: in 'transpose ': размер элемента отличается (10 должно быть 9) (IndexError). Есть идеи? – aneuch2
test.rb: 7: in 'transpose ': размер элемента отличается (0 должно быть 6) (IndexError) Это ошибка, возвращаемая в файл с 6 столбцами. – aneuch2
Попробуйте это без транспонирования и посмотрите, что вы получаете. Длина каждого массива должна быть одинаковой. – seph