필터 지우기
필터 지우기

What is this code is trying to do

조회 수: 1 (최근 30일)
Nicle Davidson
Nicle Davidson 2021년 11월 25일
댓글: Nicle Davidson 2021년 11월 25일
Can you explain what this code is trying to do?
rot=[2,4,7,3,1,5,6,8]; disp(rot); for i=1:8 rot=mod(rot,8); rot=[rot(8)+1,rot(1:7)+1]; disp(rot); end

채택된 답변

Yusuf Suer Erdem
Yusuf Suer Erdem 2021년 11월 25일
rot=[2,4,7,3,1,5,6,8];
disp(rot); %%% Display rot matrix
for i=1:8 %%% this loop will turn 8 times
rot=mod(rot,8); %%% After this operation rot matrix will be---->[2,4,7,3,1,5,6,0] because we are taking its mod according to 8
%%% Each time rot matrix will be renewed (8 times)
rot=[rot(8)+1,rot(1:7)+1]; %%% 'rot(8) + 1' means add rot matrix 8th member 1 (8 times)
%%% 'rot(1:7) + 1' means write rot matrix ' s members 1 to 7 and add 1 to each of them (8 times)
disp(rot); %%% display the final rot matrix (8 times)
end
  댓글 수: 2
Rik
Rik 2021년 11월 25일
I would also add that circshift would probably be more efficient, and since the number of shifts is equal to the number of elements, the shifts are only there for display purposes. Without the disp statements the loop would be equivalent to:
rot=mod(rot+8,8);
The +8 can even be removed, as x+8 mod 8 is equivalent to x mod 8.
Nicle Davidson
Nicle Davidson 2021년 11월 25일
Thank you to both answers.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by