Use of Circshift command : possible bug.
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Pragya Srivastava
am 14 Feb. 2017
Kommentiert: Pragya Srivastava
am 14 Feb. 2017
Hi, I am using circshift to periodically shift a 2d array. According to MATLAB documentation https://uk.mathworks.com/help/matlab/ref/circshift.html
circshift(A,[degree,dim])
shifts A by degree along dim. This works when dim=1 : I get expected result of circshift(A,[degree,1]) But for dim=2 I need to switch i.e. I have to use circshift(A,[2,degree]) to get desired result. I am using MATLAB 2016a. Please have a look.
0 Kommentare
Akzeptierte Antwort
John D'Errico
am 14 Feb. 2017
Bearbeitet: John D'Errico
am 14 Feb. 2017
Funny, that is NOT how the documentation describes it. Here is the pertinent section:
B = circshift(A,[1 -1]) % circularly shifts first dimension values
% down by 1 and second dimension left by 1.
If the second argument is a TWO element vector, then the one of the elemnts is NOT the dimension. The first element tells how far to shift in dimension 1. The second element tells how far to shift in dimension 2.
If you wish to specify a circular shift dimension dim by extent k, then use THREE arguments.
circshift(A,k,dim)
So there is a bug, but it is in your reading of the help for circshift. The help itself accurately describes what the code does.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!