Matriz Cebola

Boa tarde meus amigos, estou iniciando na matéria Estrutura de Dados e estou enfrentando um enorme problema na implementação de uma matriz cebola (ou camada, depende do que o professor está acostumado a falar)
Estou um uma dificuldade de fazer com que ela seja preenchida e vou citar uns exemplos para que vocês entendam melhor.

matriz 1x1 =
1

Matriz 1x2 =
1
1

matriz 2x2 =
1 1
1 1

Matriz 3x3 =
1 1 1
1 2 1
1 1 1

Matriz 4x4 =
1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1

Matriz 5x5 =
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

e assim sucessivamente…Não consigo pensar em uma ordem para que a camada exterior seja sempre 1, a segunda 2, a 3 4…
PS: essa matriz não pode ter limite de tamanho, sendo assim você botar uma matriz 200x200 ela deve ter o mesmo “estilo”

Vocês poderam me ajudar a entender como que eu posso fazer?

Obrigado!