Я собираюсь предположить, что ваша таблица всегда квадратная, и способ создания исходной таблицы не так уж важен.
# Create a two-dimensional array, somehow.
table = []
table << %w{1 0 0 1 0}
table << %w{0 1 0 1 0}
table << %w{0 0 1 0 1}
table << %w{1 1 1 1 0}
table << %w{0 0 0 0 1}
# New table
diagonal = []
table.each_with_index {|x,i| diagonal << x[0,table.size - i]}
# Or go the other direction
diagonal = []
table.each_with_index {|x,i| diagonal << x[0,i+1]}
Если вам нужно, чтобы значения были целыми числами, бросьтеmap {|i| i.to_i}
где-то там.