MATLAB: Move logical array by one

logical?mov

Hello,
i have the following logical:
id1=logical([0;0;1;1;1]);
id1
____
false
false
true
true
true
now i am searching for an alternative way to create another logical like:
id2=logical([0;1;1;1;0]);
id2
____
false
true
true
true
false
So every 1(true) from id1 should move one row up in id2 and the last 1(true) from id1 should become false in id2. The amount of "true" (3 in this case) shall be the same in both logicals, just moved by one.
I greatly appreciate any assistance.

Best Answer

id2=circshift(id1,-1)