Ну тут уже всё давно написано, прочитайте (сам я, правда, внимательно не читал -- это было ещё до меня).
Суть же очень проста. Если матрица
коммутирует со всеми, то, в частности, она коммутирует со всеми диагональными. Однако умножение на диагональную матрицу
с одной стороны сводится к умножению каждой строки
на соответствующий диагональный элемент
, а умножение с другой стороны -- к умножению столбцов
на диагональные элементы
. И если как частный случай взять в качестве
какую-либо диагональную матрицу с ненулевыми и попарно разными диагональными элементами, то ненулевые внедиагональные элементы матрицы
после умножения на
слева и справа окажутся разными. Т.е. коммутирование с такими
возможно лишь тогда, когда сама
диагональна.
По той же причине на диагонали
должны стоять именно одинаковые элементы -- в противном случае будут получаться разные результаты при умножении такой матрицы слева и справа, например, на матрицу
, сплошь заполненную единичками.