Насколько я понял, матрицы очень негибкие для работы. Поэтому я пытаюсь получить массив векторов. Мои потребности: возможность добавлять векторы и делать арифметические операции над их компонентами. Напиши приведенный ниже код,Смуты: Матрицы, Векторы и массивы
require 'matrix'
x = Matrix.rows(IO.readlines("input.txt").each {|line| line.split})
puts x.row_vectors
рубин попадает в исключение. Зачем?
matrix.rb:1265:in `to_s': undefined method `join' for "1.2357 2.1742 -5.4834 -2.0735":String (NoMethodError)
ОК, тогда я успокоился и попробовал другой подход. Я писал:
a = Array.[](IO.readlines("input.txt").each {|line| Vector.[](line.split) })
Но единственный способ, которым я могу получить доступ векторов внутри массива адресацию второго индекса:
puts a[0][0]
Это означает, что, когда я хотел бы получить доступ к желаемому скаляру в векторе , я буду вынужден буду использовать третий индекс, например:
puts a[0][0][1]
Итак, второй вопрос - где ад, что второй индекс происходит от? Как избавиться от него? Я что-то пропускаю при чтении данных в массив?
Вы правы. Во всяком случае, теперь у меня есть другая аналогичная проблема. Http://stackoverflow.com/questions/1480996/accessing-aan-array-of-vectors-trouble – gmile