Вы можете использовать прямое индексирование и некоторые ссоры с repmat, чтобы добавить индексы для одной диагонали 50x50 к смещениям в пределах большей матрицы каждого блока 50x50:
Вот пример для меньшей проблемы:
A = NaN(10,10,5,3);
inner = repmat(sub2ind([10 10], [1:10],[1:10]), 5*3, 10); % diagonals
outer = repmat([10*10 * [0:5*3-1]]', 1, 10*10); % offsets to blocks
diags = inner + outer;
A(diags(:)) = 1;