>

Matlab의 도움에 따라 single  값은 uint8 로 변환됩니다  반올림하여 (예 :

uint8(91.799999)

92 우리를 반환합니다.

그러나 다음과 같은 숫자는

np.uint8(91.799999)

91을 반환합니다.

이러한 행동을 어떤 방식 으로든 일치시키는 방법이 있습니까?

감사합니다

  • 답변 # 1

    두 가지주의해야 할 점이 있습니다. np.round와 MATLAB에서 사용되는 다른 반올림 모드와 MATLAB 캐스팅도 [0,255] 범위로 자르기 때문에 numpy overflow/underflows입니다. Numpy가 MATLAB에서 uint8 캐스트를 모방하도록하려면 :

    np.uint8(np.clip(91.799999+0.5,0,255))
    
    

  • 답변 # 2

    Matlab 문서는 정수로 변환하는 방법을 정확하게 설명합니다 :

    와이즈 비즈

    이 설명을 사용하면 파이썬의 동작을 매우 쉽게 모방 할 수 있습니다.

    If the number being converted to an integer has a fractional part, MATLAB rounds to the nearest integer. If the fractional part is exactly 0.5, then from the two equally nearby integers, MATLAB chooses the one for which the absolute value is larger in magnitude

  • 이전 ASPNet MVC modelState에서 모든 오류를 얻는 방법?
  • 다음 getgauge - jar 파일에서 게이지 테스트 실행