Gaussian 출력

의외로 별로 안 어려워서.

사칙연산, 조건문, 반복문, 출력, 함수사용, 모듈사용까지 하루만에 다 끝냈다.

이제 GUI만 배우면 끝.

#

# Numerical 2D Gaussian Function generator

# Copyright : KeeHwan Nam, 2011,

# Advanced Photonics Research Institute, Gwang-ju Institute of Science and Technology

#

# E-mail : snowall@gmail.com

#

# Please send me what you found bugs.

import math # math 모듈을 불러온다

print(“Numerical 2D Gaussian Function generator with Python3”) #프로그램에 대한 기본적인 정보를 출력한다

print(“Copyright : KeeHwan Nam, 2011. v1.0”)

print(“E-mail : snowall@gmail.com”)

w = int(input(“Input X(width) pixels = “)) #input으로부터 값을 읽어서,

h = int(input(“Input Y(height) pixels = “))#용도에 맞게 float과 int로 바꿔서 각 변수에 넣는다.

izero = float(input(“Input I_zero = “))

xfwhm=float(input(“Input sigma_x variable = “))

yfwhm=float(input(“Input sigma_y variable = “))

print(“Check gaussian.csv”)

def gaussian(i, j): #gaussian 함수를 정의한다.

x = (w/2.0 – float(i))/xfwhm #매개변수로 받은 두 수를 일단 float으로 바꾸고

y = (h/2.0 – float(j))/yfwhm #정규분포 함수에 넣어서

z = izero*math.exp(-x*x-y*y) # 크기를 바꾸고

return z #값을 되돌려준다

fp = open(“gaussian.csv”, “w”) #파일을 만든다

for j in range(0, h, 1): #반복구문을 돌린다. range는 0부터 h까지 1씩 증가하는 리스트를 만들어 주는 함수이다.

fp.write(“{0:.3f}”.format(gaussian(0, j))) #fp를 열었으니 거기에 쓰기로 했다. 이번엔 거꾸로 float을 int로 바꿔야 한다

for i in range(1, w, 1):

fp.write(“,{0:.3f}”.format(gaussian(i, j))) #format구문은 정수부분은 전부, 소수부분은 3자리까지만 출력하기 위해 사용한다.

fp.write(“\n”)

fp.close() #다 썼으면 파일을 닫는다.

#프로그램 끝.

코멘트

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.