/ / Як створити матрицю із вказаними розмірами або створити ім'я динамічної змінної в Ruby для кожного наступного масиву? - рубін, масиви, змінні, динамічний, матриця

Як створити матрицю з поставленими розмірами або створити ім'я змінної в Ruby для кожного наступного масиву? - ruby, масиви, змінні, динамічні, матричні

Я хотів би створити клас і передати 2 зміннідо цього класу; ширина (x) та довжина (y). За допомогою цих змінних програма повинна встановити або матрицю, або створити x кількість масивів з y кількістю записів.

Проблема в тому, що це не матриця (як?), Якщо масиви найкращі, то як це може працювати, якщо передано, скажімо, 4, 8?

array_name_0 = [0, 1, 2, 3, 4, 5, 6, 7]
array_name_1 = [0, 1, 2, 3, 4, 5, 6, 7]
array_name_2 = [0, 1, 2, 3, 4, 5, 6, 7]
array_name_3 = [0, 1, 2, 3, 4, 5, 6, 7]

де "array_name_x" x буде = x, переданий під час створення, а 0-7 базується на y.

Зразок коду такий:

class Dimensional
attr_reader :width, :length

def initialize(width,length)

@width = width
@length = length
@sqft = width * length

end
def full
"
width : #{@width}
length: #{@length}
sq ft : #{@sqft}

#display array/matrix here

"
end
end

myDimensional = Dimensional.new(4, 8)

print Dimensional.full

так як же, у цьому прикладі, я б створив матрицю з цими значеннями x, y або як би я динамічно призначав "array_name_x" із числом для x на основі x?

Відповіді:

0 для відповіді № 1

width.times.map{ length.times.to_a } спадає на думку, наприклад

matrix = 3.times.map{ 2.times.to_a }
# => [[0, 1], [0, 1], [0, 1]]

matrix.map{ |row| row.join(" ") }.join("n")
# 0 1
# 0 1
# 0 1