MATLAB Answers

Shifting signals to the right

조회 수: 102(최근 30일)
Curious Mind
Curious Mind 18 Jun 2020
댓글: Adam Danz 19 Jun 2020
Hi, I have a matrix, M which is 10*2000 double (10 rows of signals and each signal contains 2000 variables). I want to shift each of the signal in this matrix to the right by say 1. I have a code (below) that can shift a single signal (that is if M contains a single signal, 1*2000). How do I modify this to shift each signal in M at the same time?
The code code for shifting a single signal is:
p = M;
Shift = 1;
Shifted_M = circshift(p,Shift);
In summary, I want a code that can shift each independent row signal in a matrix and output the shifted matrix as Shifted_M. After that I would like to plot this shifted matrix with the original data to visualize it.
  댓글 수: 1
Tanveer ul haq
Tanveer ul haq 18 Jun 2020
% consider your matrix is M then:
M=[1 2 3; 4 5 6; 7 8 9];
Shift = 1;
Shifted_M = circshift(M',Shift);
rotated_matrix = Shifted_M'

댓글을 달려면 로그인하십시오.

채택된 답변

Adam Danz
Adam Danz 18 Jun 2020
If you'd like to circularly shift the data "A" by "K" positions along the "dim" dimension,
Y = circshift(A,K,dim) (click for more info)
So, you'll need to specify the dimension.
  댓글 수: 10
Adam Danz
Adam Danz 19 Jun 2020
Ah, good! Sometimes describing the problem is more difficult than finding the solution. Glad it all worked out!

댓글을 달려면 로그인하십시오.

추가 답변(0개)




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by