How can I shift Right which is an array of numbers?
    3 views (last 30 days)
  
       Show older comments
    
    Micky
 on 14 Feb 2013
  
    
    
    
    
    Commented: vishwajit jadhav
 on 26 Jun 2020
            I need is a new shifted array and eventually I want to add the arrays.(New Shifted array + Original Array). Can I do something like e.g . aa =[11 22 33 44]; bb = aa(2:4); % this is shifting left It gives bb = [22 33 44], but one value is dropped out. If possible can someone provide method to shift right and how to pad the dropped out value appropriately so that the size of the new array remains same as the original array?
0 Comments
Accepted Answer
  Azzi Abdelmalek
      
      
 on 14 Feb 2013
        
      Edited: Azzi Abdelmalek
      
      
 on 14 Feb 2013
  
      use circshift function
   circshift(aa,[0 -1])
or
   circshift(aa,[0 1])
7 Comments
  Azzi Abdelmalek
      
      
 on 14 Feb 2013
				
      Edited: Azzi Abdelmalek
      
      
 on 14 Feb 2013
  
			n=2
x= [11;22;33;44;55;66]
x=circshift(x,[n 0])
x(1:n)=0  % or what you want
More Answers (2)
  Image Analyst
      
      
 on 14 Feb 2013
        Not quire sure what you're describing about not dropping off any values and having bb be the same size as aa, but how about this:
aa =[11 22 33 44]; 
bb = zeros(size(aa))
bb(2:4) = aa(2:4)
% or
bb1 = zeros(size(aa))
bb1(1:3) = aa(2:4)
In the command window:
bb =
     0    22    33    44
bb1 =
  22    33    44     0
You can see there is a zero and no value is dropped off or lost and the size of bb is the same as aa. If one of those methods is not what you want, explain in more detail.
3 Comments
  Image Analyst
      
      
 on 14 Feb 2013
				
      Edited: Image Analyst
      
      
 on 14 Feb 2013
  
			My solution will work. You just have to generalize it to "k" instead of fixed numbers of 2:4 like your example.
x = [11;22;33;44;55;66]
% k = -2;
k = +2;
s = zeros(size(x));
if k >= 1
  s(k+1:end) = x(1:end-k)
elseif k <= -1
  s(1:end+k) = x(-k+1:end)
end
See Also
Categories
				Find more on Logical in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!