It works as though everything on the right hand side happens before anything on the left hand side, effectively doing the “snapshot” thing but with probably better memory efficiency. In reality, it may loop through or it may take a “snapshot”, but due to abstraction you don’t really need to know or care about that.
So the result would be something like as follows:
v=[1 2 3 4 5 6]; v[1:5]=v[2:6]; disp(v) v = [2 3 4 5 6 6]
Is that what you want?