Published Book on Amazon
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1 | |
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2 |
출판된 한글판 도서
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상) | |
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하) |
Original Book Contents
23.2.3 Mathematica 사용법
여기서는 사례를 이용하여 Mathematica에서 “Notebook”을 어떻게 사용하는지를 설명하도록 하겠다.
23.2.3.1 Mathematica에서의 Program 작성방법
● script 입력 및 실행
“Notebook” window에서 화면을 click하고 다음을 입력한다. [Shift + Enter]를 누르면 command를 실행하게 되고, 화면에 아래와 같이 "Hello world"를 인쇄한다.
Print["Hello world"] |
아래와 같은 형식으로 계산이 필요한 내용을 입력하면 수학적 계산을 할 수 있다.
In[2]:= 2 + 2
Out[2]= 4
In[3]:= 16254 / 32
Out[3]= 8127 / 16
In[4]:= 1024 * 32
Out[4]= 32768 |
● Notebook 편집
앞에서 입력한 내용을 마우스로 클릭하거나 [상/하 화살표] 키로 이동하여 내용을 수정하거나, 추가하거나, 삭제한 다음, [Shift + Enter]
를 눌러서 그 자리에서 다시 명령을 실행할 수 있다.
이전에 저장된
“Notebook”
을 다시
open
하여 작업할 수도 있는데
,
그러면 이전에 입력한 내용이
input
과
output
내용 모두가 그대로 보이고
, [Shift + Enter]
를 이용해서 각각의
cell
을 실행해 볼 수 있고
,
메뉴에서
Evaluation
à
Evaluate Notebook
을 이용해서 전체를 한꺼번에 실행해 볼 수도 있다.
● variable의 사용
프로그램 처리 중에 필요하면 변수에 계산결과를 저장해 놓을 수 있다. 아래와 같이 입력한다. 참고로 각 행의 끝에 semicolon “;”을 입력하면 output이 인쇄되지 않도록 하는 것이다.
radius = 5; diameter = 2 * radius; circumference = 2 * Pi * radius; area = Pi * radius^2; |
● 기호 상수(Symbolic values)
아래에서, “π”에 대한 기호상수 값을 가지고 있는 내부 정의 기호 “Pi”
에 대해서 살펴보자. 우리가 방정식엣 "Pi"라고 입력했을 때, 이것은 “π”의 실제값(true value)에 대한 참조를 방정식에 전달한 것으로, 이것이 소수점으로 전환되어 반올림되는 것이 아니라는 것을 의미한다.
In[19]:= Pi
Out[19]: π
In[20]:= tau = 2 * Pi
Out[20]: 2 π |
기호상수에 대한 소수점 표현값(decimal representation)을 알고 싶은 경우는 “N”
function을 사용한다
In[5]:= N[Pi]
Out[5]: 3.14159 |
기호상수에 대한 기본적인 정밀도(significant figures)는 숫자 6 자리이다. 그래서 위의 결과 값이 숫자 6개로 되어 있다. 필요하면 아래와 같이 두 번째 인수에 더 큰 정밀도를 지정할 수도 있다.
In[6]:= N[Pi, 10]
Out[6]: 3.141592654 |
여기서 지정한 정밀도는 전체 숫자의 자리수이다. 위에서 보면 숫자 “3”과 함께 소수점 9자리가 표시되어 있는 것을 알 수 있다.
● 배열(Lists)
집합 형태의 자료는 배열(list)에 자료를 저장할 수 있다.
nums = {1, 2, 3, 5, 8} people = {"Alice", "Bob", "Charlotte", "David"} |
● 범위(Range)
“Range”
function을 사용하면 숫자의 배열(list)을 쉽게 만들 수 있다.
Range[5] (*The numbers 1 to 5*) Range[2, 5] (*The numbers 2 to 5*) Range[2, 5, 2] (*The numbers 2 to 5, in steps of 2*) |
● Table
“Table”
function은 배열 내의 값을 이용해서 새로운 배열자료를 만들어 낼 수 있다.
Table[i ^ 2, {i, 10}] (*Squares of the numbers 1 to 10*) Table[i ^ 2, {i, 5, 10}] (*Squares of the numbers 5 to 10*) Table[i ^ 2, {i, nums}] (*Squares of the items in the list nums*) |
● 순환(Looping)
“Do” function을 이용해서 지정회수나 배열 내의 항목 갯수만큼 반복 실행을 할 수 있다.
Do[Print["Hello"], {10}] (*Print "Hello" 10 times*) Do[Print[i], {i, 5}] (*Print the numbers 1 to 5*) Do[Print[i], {i, 3, 5}] (*Print the numbers 3 to 5*) Do[Print[i], {i, 3, 5}] (*Print the numbers 1 to 5, in steps of 2*) Do[Print[i ^ 2], {i, nums}] (*Print the square of each item in the list nums*) |
● Function Help
function 이름 앞에 question mark “?”
를 붙인 다음 [Shift + Enter]로 실행을 하면, 해당 function에 대한 usage help을 얻을 수 있다. 다음은 function “Sqrt”에 대한 도움말을 확인한 것이다.
● Function Search
Function 이름을 정확히 모를 때는 question mark “?”
와 함께 function name의 일부분과 asterisk “*”
를 wildcard로 사용하여 검색조건에 맞는 function 목록을 한꺼번에 조회할 수 있다. 아래는 이름에 "Device"라는 글자를 포함하는 모든 function을 찾은 결과이다.
In[15]:= ?Device* |
필요하면 아래와 같이 여러 개의 wildcards를 사용할 수도 있다. 그러면 조건에 맞는 모든 function 들을 조회할 수 있을 것이다.
In[16]:= ?*Close* |
● 주석(Comments)
괄호 “( )”와 asterisk “*”
를 사용하여 “(*주석내용*)”의 형태로 scripts 내에서 주석을 달아 놓을 수 있고, 이들은 나중에 실제 명령이 실행될 때는 무시된다.
Print["Hello"] (*Print "Hello" to the screen*) |
23.2.3.2 프로그램 저장 및 재사용
한번 작성된 프로그램은 메뉴 File
à
Save
를 이용하여 파일로
저장하여 재사용할 수 있다. 파일로 저장할 때는 여러 가지 format을 사용할 수 있는데, Wolfram notebook(.nb)
이나
Wolfram mathematica package(.m), Wolfram language package(.wl) 또는 일반 파일(.txt) 로 저장할 수도 있다.
파일로 저장된 자료는 다시
open
하여 그대로 다시 실행할 수도 있고
,
수정하여 실행할 수도 있다
. [Shift + Enter]
를 이용해서 각각의
cell
을 실행해 볼 수 있고
,
메뉴에서
Evaluation
à
Evaluate Notebook
을 선택하여 전체를 한꺼번에 실행할 수도 있다.
● Shell에서 wolfram을 이용한 scripts 실행
Wolfram mathematica package(.m), Wolfram language package(.wl) 형태로 저장된 script는 Shell에서 “wolfram” 명령으로 직접 실행할 수도 있는데, 이때는 “-script” flag를 사용한다. 아래 사례에서 “print” 명령이 있는 script가 “test_print.m” 파일로 저장되어 있다. Shell에서 이 script 파일을 직접 실행하고자 하면 다음과 같이 실행한다. 그러면 화면에 "Hello World" 라는 문구가 인쇄되어 나온다.
wolfram -script test_print.m |