Поскольку выполнение этого (насколько я знаю) не является допустимой матричной операцией в математическом смысле, делать это нечем. Вы можете создать новую Матрицу, хотя:
m = Matrix.diagonal(1, 2, 3)
#=> Matrix[[1, 0, 0], [0, 2, 0], [0, 0, 3]]
Matrix.columns(m.to_a << [4, 5, 6])
#=> Matrix[[1, 0, 0, 4], [0, 2, 0, 5], [0, 0, 3, 6]]
Matrix.rows(m.to_a << [4, 5, 6])
#=> Matrix[[1, 0, 0], [0, 2, 0], [0, 0, 3], [4, 5, 6]]
При этом используется columns
или rows
для создания новой матрицы путем добавления нового массива
к представлению массива исходной матрицы.