circshift function working explanation needed
28 views (last 30 days)
Completely new to matlab. Studying some sample codes.
% bitget and num2str and circular shift
x = 0b10011010u8 % x is 10011010
value3= bitget(x, 8:-1:1) % x's binary representation is 10011010
s4= num2str(value3, formatSpec4);
s5(1:4) = circshift(s5(1:4),-1);
Not able to understand the syntax and functionality of circshift. Thank in advance
Please explain me the functionality of circshift.
Voss on 16 Jan 2022
circshift(s,d) for a vector s and positive integer d shifts the elements of s to the right by d amount, wrapping back to the beginning when they go off the end (thats why it's called circular). If d is negative, elements are shifted to the left by -d amount.
It's easier to see what it does with a few examples in MATLAB rather than a few sentences in English.
s = [10 20 30 40 50] % original vector s
circshift(s,1) % shift s right by 1, last element wraps around to become first
circshift(s,-1) % shift s left by 1, first element wraps around to become last
circshift(s,2) % right by 2
circshift(s,-4) % left by 4
circshift(s,5) % shifting by the length of the vector returns the original vector
In your code, the first 4 elements of s5 are shifted left by one place and stored back into s5 as the first 4 elements (and the remaining elements are untouched):
s5 = [1 2 3 4 5 6 7 8]
s5(1:4) = circshift(s5(1:4),-1)