sub2ind(size(M), 1:3, 1:3)
возвращает массив [1, 5, 9]
линейного индекса записей: (1,1), (2,2), (3,3)
. В M(sub2ind(size(M), 1:3, 1:3))
вы обращаетесь к M
как к вектору, это эквивалентно записи M([1, 5, 9])
, поэтому вы обращаетесь к матрице с линейным индексированием, и вы присваиваете значение 1 для этих записей: M(sub2ind(size(M), 1:3, 1:3)) = 1
, чтобы изменить стоимость этих записей