Ну тут уже всё давно написано, прочитайте (сам я, правда, внимательно не читал -- это было ещё до меня).
Суть же очень проста. Если матрица

коммутирует со всеми, то, в частности, она коммутирует со всеми диагональными. Однако умножение на диагональную матрицу

с одной стороны сводится к умножению каждой строки

на соответствующий диагональный элемент

, а умножение с другой стороны -- к умножению столбцов

на диагональные элементы

. И если как частный случай взять в качестве

какую-либо диагональную матрицу с ненулевыми и попарно разными диагональными элементами, то ненулевые внедиагональные элементы матрицы

после умножения на

слева и справа окажутся разными. Т.е. коммутирование с такими

возможно лишь тогда, когда сама

диагональна.
По той же причине на диагонали

должны стоять именно одинаковые элементы -- в противном случае будут получаться разные результаты при умножении такой матрицы слева и справа, например, на матрицу

, сплошь заполненную единичками.