вы приближаетесь, но проблема возникает, когда вы меняете все 2 на одно.
после этого заявления
S(S==2)=1;
массив выглядит так
S = [1 1 1 1 1 3 3 3 3];
и после двух других заявлений S(S==1)=2; S(S==3)=2;
Ваш массив, очевидно, будет иметь все 2.
вместо
S(S==2)=1; S(S==1)=2; S(S==3)=2;
вы можете сделать так:
S(S==2)=-1; S(S==1)=2; S(S==3)=2;S(S==-1)=1;
* * 1012 то есть. на первом шаге измените все
2
на другое значение (например,
-1
здесь), а затем выполните необходимое преобразование, т.е.
S(S==-1)=1
;