Borrar filtros
Borrar filtros

Use of Circshift command : possible bug.

3 visualizaciones (últimos 30 días)
Pragya Srivastava
Pragya Srivastava el 14 de Feb. de 2017
Comentada: Pragya Srivastava el 14 de Feb. de 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.

Respuesta aceptada

John D'Errico
John D'Errico el 14 de Feb. de 2017
Editada: John D'Errico el 14 de Feb. de 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.
  1 comentario
Pragya Srivastava
Pragya Srivastava el 14 de Feb. de 2017
Okay. Thanks for clarification. I was misreading [1 2] to be 1,2.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by