python 회전 매트릭스 방식 실현(회전 매트릭스)

파 이 썬 에는 배열 이라는 데이터 구조 가 없다 는 것 을 알 고 있 기 때문에 회전 행렬 을 실현 하려 면 먼저 numpy 패 키 지 를 가 져 와 야 합 니 다.다 차원 배열 대상 과 배열 을 처리 하 는 루틴 집합 으로 구 성 된 python 확장 프로그램 라 이브 러 리 입 니 다.배열 산수 와 논리 연산 을 할 수 있 습 니 다.
생각:
먼저 n*m 가 모두 0 인 행렬 을 만 든 다음 회전 규칙 에 따라 안의 값 을 순서대로 교체 합 니 다.
가장 바깥쪽 의 순환 은 한 바퀴 의 데 이 터 를 교체 하 는 것 을 대표 한다.이 한 바퀴 의 데 이 터 는 배열 에서 의 모양 이 직사각형 이다.우 리 는 마지막 순환 에 두 가지 상황 이 있다 는 것 을 알 수 있다.
1.한 바퀴(사각형)데이터 교체
2.데이터 교체
첫 번 째 상황 이 라면 순환 을 정상적으로 하면 되 지만 두 번 째 상황 이 라면 if 문 구 를 추가 하여 판단 해 야 합 니 다.마지막 큰 순환 은 하나의 데이터 만 교체 해 야 하기 때문에 우 리 는 첫 번 째 작은 순환 을 마치 고 마지막 요 소 는 반드시 교체 되 어야 하기 때문에 첫 번 째 작은 순환 후에 교체 하 는 마지막 요소 가 이론 적 으로 마지막 요소 의 값 과 같 는 지 판단 하면 된다.

import numpy as np
def rotary_matrix(n,m):
 array=np.zeros((n,m))
 #   
 x=y=0
 ret=array[x][y]=1
 #      i                
 i = 0
 while ret < n*m:
  #               
  while y<m-1-i:
   y+=1
   ret+=1
   array[x][y]=ret
   
  # ret          ,           ,         
  if ret == n * m:
   break
   
  #                
  while x<n-1-i:
   x+=1
   ret+=1
   array[x][y] = ret
  #                
  while y>0+i:
   y-=1
   ret+=1
   array[x][y]=ret
  #                
  while x>0+1+i:
   x-=1
   ret+=1
   array[x][y] = ret
   
  i+=1
 print(array)
이상 의 python 이 회전 행렬 방식(회전 행렬)을 실현 하 는 것 은 바로 소 편 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기