메모리는 단어가 의미하는 그대로 데이터를 기억해주는 장치이다. 디지털 시스템의 모든 데이터는 1/0으로 표현되며 메모리 소자들도 이러한 이진 데이터를 기억하며 보통은 8개(바이트), 16개(워드) 등과 같이 이진 데이터(비트)를 8의 배수개로 묶어서 저장한다. 메모리는 크게 롬과 램으로 분류할 수 있다.

램 (RAM, random access memory)

 데이터를 일시적으로 저장하는 장치이다. 즉 램상의 데이터는 자주 변경되며 램에 전원이 인가되는 동안에만 그 데이터를 유지한다. 크게 SRAM (static RAM)과 DRAM (dynamic RAM)으로 나뉜다. SRAM은 재충전(refresh)이 필요 없고 속도가 빠른 반면 가격이 비싸다는 특징이 있다. 고속 동작이 요구되는 비디오 카드의 기억 장치로 사용된다. 반면 DRAM은 재충전이 필요하므로 속도가 SRAM에 비해 느린 반면 가격이 싸다는 특징이 있어서 PC의 메인 메모리로 사용된다.


[그림 1] 램의 예

롬 (ROM, read only memory)

 데이터를 영구적으로 저장하는 장치이다. 즉 롬상의 데이터는 특정한 작업을 하지 않는 이상 변경되지 않으며 롬에 전원이 인가되지 않더라도 저장된 데이터는 그대로 유지된다. 종류로는 마스크롬 (mask ROM), EP롬 (erasable programmable ROM), EEP롬 (electrically erasable PROM), 플래시EEP롬 (flash EEPROM, 보통 플래시롬이라고 함)등이 있다.


[그림 2] ROM의 예


● 마스크롬 (mask ROM)

 한 번만 구울 수 있는 롬이며 달리 칩 제조업체가 제품 출하 전에 굽는다.

● EP롬 (erasable and programmable ROM)

 칩 표면에 부착된 유리창을 통해 자외선을 쬐어 데이터를 지울 수 있으며 다시 전기적으로 롬에 데이터를 쓸 수 수 있다. 자외선 이레이져가 필요하고, 삭제하는데 많은 걸린다.

● EEP롬 (electriaclly erasable and programmable ROM)

 회로 상에서 전기적으로 지우고 다시 프로그램 할 수 있으므로 ISP가 가능하다. 주로 마이크로콘트롤러에서 시스템 매개변수(네트워크 주소, 시리얼번호 등)나 저장용으로 소형 EEPROM을 사용한다.


[그림 3] 롬라이터의 예

● 플래시롬(FLASH EEPROM)

 가장 최신 ROM 기술이고 시장 점유율도 가장 높다. ISP(in-system progrmamming, 시스템에 장착된 상태로 프로그래밍하는 것을 의미함)가 가능하고, 지우고 프로그램하는 속도도 상대적으로 빠르다. 소형 마이크로콘트롤러에서는 1-2메가 미만의 플래시들이 사용되고, 32비트 마이크로프로세서에서는 2메가 이상의 플래시들이 주로 사용된다.


메모리에 데이터가 저장되는 방식

 디지털 시스템에서의 데이터는 0/1로 표현되는 2진수이며 이를 비트(bit)라고 한다. 메모리는 이러한 데이터를 저장하는 물리적인 장치인데 8개의 비트를 묶어서 바이트(byte)라고 하고 이 바이트에 하나의 주소를 할당하면 8비트 메모리이다. 그리고 16개의 비트를 묶어서 워드(word)라고 하고 이 워드에 하나의 주소를 할당하면 16비트 메모리라고 한다. 각각의 바이트/워드는 최하위 비트부터 bit0, bit1, bit2, .., 와 같이 번호를 붙여서 참조한다.


 주소(address)는 특정한 데이터를 읽거나 쓰는 장소를 식별할 수 있는 번호인데 0번지 부터 시작하여 1번지, 2번지 와 같이 되어 있다. 마지막 번지가 몇 번지인가에 따라 메모리의 용량이 결정된다. 예를 들어 끝번지가 $FFF라면 16KByte메모리가 된다.


 다음 그림은 8비트 메모리의 예를 나타내며 본 교재에서는 b0~b7로 표기하여 각각의 비트를 참조하도록 하겠다.


[그림 4] 8비트 메모리 구조


 반면 16비트 메모리의 경우 2바이트(word)당 주소가 하나씩 할당되어 있으며 하나의 번지당 하위바이트와 상위바이트로 나뉘며 bit0~bit15로 각각의 비트를 지칭한다.

[그림 5] 16비트 메모리 구조


참고로 AVR의 경우 내장 메모리는 크게 프로그램을 저장하는 플래시 메모리와 SRAM, 그리고 EEPROM으로 나뉘는데 플래시메모리는 16비트 메모리이고 SRAM과 EEPROM은 8비트 메모리이다.


ATmega8(A) 강좌 전체 목록 >>>


c{am8},n{a8m0003}

Posted by 살레시오
,

 마이크로프로세서는를 크게 활용 분야와 내부 명령어 구조에 따라서 분류해 볼 수 있다.

활용분야에 따른 분류


① 범용 마이크로프로세서


 uP는 전술한 바와 같이 CPU의 기능 대부분을 하나의 반도체 칩에 집적한 것이다. PC에서 사용되고 있는 인텔의 펜티엄(pentium) 프로세서가 대표적인 범용 마이크로 프로세서이다. 마이크로프로세서 한 개만으로는 동작하지 않으며, 외부에 롬, 램 및 주변장치를 장착하기 위한 부가회로가 필요하다. 주변장치를 효율적으로 관리하기 위해 운영체제 (operating system, OS)가 필요하다.


[그림 1] 범용 마이크로프로세서의 예


② 마이크로컨트롤러 (micro-controller, uC)


 주로 기기의 제어 용도로 사용되는 프로세서로서 내부에 롬(ROM), 램(RAM) 및 I/O포트를 내장하여 간단한 외부 회로만으로 동작이 가능하다. 이 밖에도 기기를 제어할 때 많이 사용되는 부가회로들 즉, A/D(analog/digital) 변환기, PWM (pulse width modulation) 발생기, 타이머/카운터(timer/counter) 등을 프로세서 내부에 내장하고 있는 경우도 많다. 대표적인 8비트 uC로서 8051계열, PIC계열 그리고 AVR계열의 디바이스들이 있다.


[그림 2] 여러가지 마이크로콘트롤러


③ DSP (digital signal processor)

 많은 연산이 필요한 영상처리나 복잡한 실시간 제어에 uP를 활용하기 위해서는 그 여러 가지 기능 중에서 빠른 연산 속도가 가장 중요하다. DSP는 다양한 신호 처리 및 고속 연산에 유리하도록 특별히 제작된 프로세서로 하드웨어적으로 부동 소수점 (floating point) 연산기능, MAC (multiplication and accumulation, 덧셈과 곱셈을 한 사이클에 수행) 연산기능, 빠른 외부 메모리 인터페이스 등이 특징이다.


[그림 3] DSP의 예


내부 명령어의 구조에 따른 분류


① CISC (complex instruction set computer) 프로세서


 어떤 필요한 기능을 수행하기 위한 명령어가 프로세서에 지속적으로 추가되어 상대적으로 명령어가 복잡하고 많은 형태이다. 명령어의 길이가 가변적이고 다양한 주소지정 모드 (addressing mode)를 가진다. 현재의 마이크로 프로세서 아키텍쳐들 중에 x86과 m68k 아키텍쳐만이 CISC이다. 추가된 많은 명령어를 잘 활용하면 짧은 프로그램 코드로 빠른 결과를 얻을 수 있지만 프로세서 설계가 복잡해지는 단점이 있다.

② RISC (reduced instruction set computer) 프로세서


 1980년대에 RISC에 대한 연구가 미국의 버클리 대학과 스탠포드 대학에서 굉장히 활발하였고, 버클리 대학의 패터슨 교수가 RISC이라는 용어를 처음으로 만들어 냈다. RISC 프로세서는 CISC 프로세서의 복잡한 명령어들의 집합대신 자주 쓰이는 간단한 명령어들만 남겨두고, 대신 이러한 명령어들이 보다 빨리 수행될 수 있도록 프로세서를 설계한 것이다. 적은 명령어 수와 적은 주소지정 모드(addressing mode)를 가지며 명령어의 길이가 고정적이다. 이전에는 고성능의 워크스테이션에서 주로 사용되었으나 최근에는 간단한 마이크로컨트롤러, DSP 등에도 적용되고 있다.

ATmega8(A) 강좌 전체 목록 >>>


c{am8},n{a8m0002}

Posted by 살레시오
,

 마이크로(micro, 1/1000000)라는 말은 매우 작다는 의미를 내포하며 프로세서는 ‘어떠한 일을 처리하는 장치‘라는 뜻으로서 이 두 단어의 합성이인 마이크로프로세서 (microprocessor, 이후 uP로 표기함)는 단어의 뜻으로만 보면 ’극소형의 처리장치‘정도로 해석될 수 있을 것이다. 좀 더 기술적인 설명은 작은 면적의 실리콘에 복잡한 전자회로를 집적시킨 것으로, 이 전자회로는 미세한 도선으로 연결된 수천 혹은 수백만 개의 콘덴서나 트랜지스터(transistor) 등으로 구성되어 있다.


 인텔이 발표한 최초의 uP는 1971년에 소개된 4004로 2300개의 트랜지스터를 가지고 있었으며 클럭속도는 108KHz이고 4bit 프로세서이다. 이 μP는 간단한 계산을 수행하는 계산기를 만드는데 사용이 되었으나 그 이후에 발전에 발전을 거듭하여 개인용 컴퓨터를 탄생시키는 등 우리의 생활을 광범위하게 바꾸는 계기가 되었다.


 참고로 [그림 1]에 내부회로가 도시된 펜티엄3는 약 9백5십만 개의 트랜지스터를 집적하였음을 보면 마이크로프로세서의 발전 속도를 짐작할 수 있다.


[그림 1] 인텔의 4004 외형 / 인텔 4004 내부 회로 / 펜티엄4의 내부 회로


 일반적으로 uP는 [그림 2]에 도시된 바와 같이 레지스터(register), 산술논리장치 (arithmatic logic unit, ALU), 제어장치, 데이터버스 등의 구조를 가지며 이러한 기능을 가지는 장치들을 하나의 칩에 집적한 것이다.

[그림 2] uP의 구성 요소

레지스터 (register)

 레지스터는 CPU내부의 기억장치이고 ALU에서 수행한 연산의 결과를 임시로 저장하는 역할을 한다. 고속으로 데이터에 접근, 처리가 가능하며 외부메모리는 번지로 구별하는데 반해 레지스터는 이름으로 구별한다. 크게 범용레지스터 (누산기 등)와 특수 목적 레지스터(프로그램 카운터, 명령어 레지스터 등)로 나뉜다.

산술논리장치 (ALU)

 산술 및 논리 연산 수행하는 장치이다. 레지스터에서 피연산자를 받고 연산 결과를 다시 레지스터에 저장한다. 조합논리회로로 구성되어 있다.

제어장치

 CPU 내부의 신호의 흐름를 제어하는 신호를 발생한다.

각종 버스(bus)

 버스(bus)라는 것은 디지털 시스템에서 동일한 기능을 수행하는 신호선들의 집합이다. uP내부에서 하나의 신호선은 두가지 상태(0, 1)만을 가질 수 있다. 이러한 선이 여러개 모이면 다양한 경우의 수가 생겨서 여러 상태나 값을 가지고 전달할 수 있게 된다.

  • 데이터(data) 버스 : uP가 내외부의 메모리와 데이터를 주고받는데 사용하는 신호선이다.

  • 어드레스(address) 버스 : uP가 내외부의 메모리 번지를 지정하는데 사용하는 신호선이다.

  • 신호(signal) 버스 : uP가 수행할 작업의 종류 및 상태를 메모리나 입출력기기에 알려주고, 외부의 요구를 받아들이는 신호선이다.


 참고로 디지털 시스템(digital systme)에서는 전압값을 이용하여 0/1 신호를 구분한다. 신호 0은 0V (혹은 GND라고 표시함) 이고 신호 1은 5V/3.3V/1.8V 등의 전압값이 사용된다. 이러한 2진 신호를 여러 개 묶어서 어떤 정보나 데이터 값을 전달하게 되는 것이다. 2진 신호가 몇 개가 묶였느냐에 따라서 다음과 같이 구분한다.

  • 비트 (bit) : 0/1을 표시하는 최소 데이터 단위

  • 바이트 (byte) : 8 bits

  • 워드 (word) : 2 bytes = 16 bits

  • 더블 워드 (double word) : 2 words = 4 bytes = 32 bits


ATmega8(A) 강좌 전체 목록 >>>


c{am8},n{a8m0001}

Posted by 살레시오
,

1장 마이크로프로세서 개요
    1.1 마이크로프로세서란 개요
    1.2 마이크로프로세서 분류
    1.3 디지털 시스템의 메모리 분류 
    1.4 마이크로컨트롤러의 I/O 장치들
    1.5 디지털 신호를 표시하기 위한 2진수와 16진수

2장 AVR 개요
    2.1 AVR 마이크로컨트롤러 개요
    2.2 ATmega8(A) 소개
    2.3 ATmega8(A)의 세부적인 특징
    2.4 ATmega8(A)의 메모리 구조
    2.5 락 비트(lock bit)와 퓨즈 바이트(fuse byte)
    2.6 전원과 리셋(reset) 회로
    2.7 클럭 소스 (clock source)
    2.8 개발 환경 : atmel studio 소개
    2.9 오픈소스 다운로더 USBasp / USBaspLoaser
    2.A AVR툴체인의 자료형
    2.B AVR의 플래시롬에 데이터 읽고 쓰기
    2.C AVR의 EEPROM에 데이터 읽고 쓰기
    2.B 기본적인 라이브러리 함수 요약

3장 포트(port)를 이용한 기초 실험
    3.1 포트 개요
    3.2 LED를 이용한 포트 실험 (Part 1)
    3.3 헤더 파일 "Am8USBasp.h"의 구조
    3.3 
LED를 이용한 포트 실험 (Part 2)
    3.5 7세그먼트를 이용한 포트실험 (Part 1)
    3.6 
7세그먼트를 이용한 포트실험 (Part 2)

4장 인터럽트(interrupt)
    4.1 인터럽트 개요
    4.2 인터럽트 프로그래밍
    4.3 외부 인터럽트 설정
    4.4 외부 인터럽트와 스위치 실험 1
    4.5

5장 타이머/카운터
    5.1 타이머/카운터 개요와 T/C0 소개
    5.3 T/C0 의 레지스터와 프리스케일러
    5.3 T/C0를 이용한 실험

    5.4 T/C2 (8비트 타이머/카운터) 개요 및 기능
    5.5 T/C2의 레지스터와 프리스케일러
    5.6 T/C2의 정상 모드와 CTC 모드
    5.7 T/C2의 PWM 모드

    5.8 TC1 (16비트 타이머/카운터) 개요 및 기능
    5.9

6장 아날로그-디지털 변환(ADC)
    6.1 ADC 개요
    6.2 ADC 관련 레지스터들
    6.3 ADC 수행 절차
    6.4 CdS 광센서를 이용한 실습 예제
    6.5

'주제별 글목록' 카테고리의 다른 글

심파이(sympy) 강좌 목록  (0) 2015.06.03
파이썬(python) 기초 강좌 목록  (1) 2015.05.23
아두이노 강좌 목차  (3) 2015.05.17
리눅스(Linux) 강좌 목차  (2) 2015.05.16
C++ 강의 글 목록 (목차)  (2) 2015.04.21
Posted by 살레시오
,

1장 개요

    1.1 운영체제(OS) 개요

    1.2 유닉스(UNIX) 소개

    1.3 자유 소프트웨어 재단(FSF) 설립

    1.4 리눅스(Linux) 소개


2장 리눅스 쉘 명령어

    2.1 리눅스 커널(kernel)과 쉘(shell)

    2.2 리눅스 파일 시스템

    2.3 리눅스 터미널(terminal) 입력 기본

    2.4 pwd / ls 명령

    2.5 cd 명령

    2.6 mkdir / rm / rmdir 명령

    2.7 cp / mv 명령

    2.8 파일의 내용을 보여주는 명령어

    2.9 alias / unalias 명령

    2.10 기타 명령어들

    2.11 입출력 재지정 (redirection)

    2.12 nano 텍스트 에디터

'주제별 글목록' 카테고리의 다른 글

심파이(sympy) 강좌 목록  (0) 2015.06.03
파이썬(python) 기초 강좌 목록  (1) 2015.05.23
아두이노 강좌 목차  (3) 2015.05.17
ATmega8(A) 강좌 목록  (1) 2015.05.16
C++ 강의 글 목록 (목차)  (2) 2015.04.21
Posted by 살레시오
,

 심파이(sympy)의 행렬 객체는  Matrix이다. 이 Matrix 객체를 생성할 때는 리스트를 넘겨주면 된다. 넘겨준 리스트의 각 요소는 행렬의 행이 된다. 기본적인 사용 예는 다음과 같다.


>>> Matrix([[1,0],[0,1]]) #[1,0]이 1행, [0,1]이 2행이 된다.
>>> Matrix([[11, 22, 33]]) # 리스트의 첫 번째 요소인 [11,22,33]이 1행이 된다.
>>> Matrix([11, 22, 33]) # 11이 1행, 22가 2행, 33이 3행이 된다.


다른 방법으로 행의 개수와 열의 개수를 명시적으로 지정해 주는 방법이 있다.


>>> A = Matrix(2, 3, [1,2,3,4,5,6])
⎡1  2  3⎤
⎣4  5  6⎦

>>> B = Matrix(4, 4, range(16))
⎡0   1   2   3 ⎤
⎢4   5   6   7 ⎥
⎢8   9   10  11⎥
⎣12  13  14  15⎦


행 요소와 열 요소의 관계를 파이썬 함수로 작성하여 이것을 사용할 수도 있다.


>>> def f(i,j):
 if i==j : return 1
 else : return 0

>>> Matrix(4,4,f)
⎡1  0  0  0⎤
⎢0  1  0  0⎥
⎢0  0  1  0⎥
⎣0  0  0  1⎦


명시적 함수뿐만 아니라 익명 함수도 사용할 수도 있다.


>>> Matrix(3, 4, lambda i,j:1-(i+j)%2)
⎡1  0  1  0⎤
⎢0  1  0  1⎥
⎣1  0  1  0⎦


특수한 행렬을 생성하는 함수도 있다. eye() 함수는 항등 행렬을 생성하며, zeros() 는 영행렬을 그리고 ones()는 일행렬을 만들어 준다.


>>> eye(4)
>>> zeros(2)
>>> ones(3)
>>> ones(1,3)


대각행렬을 생성하는 diag() 함수도 있다. 스칼라나 행렬을 인수로 주면 그것들로 대각행렬을 생성한다.


>>> diag(1,2,3)
>>> diag(-1, ones(2,2), Matrix([5,7,6]))


스칼라는 1x1 행렬로 간주되며 주어진 행렬들을 대각 위치에 놓는다.


 난수 행렬을 발생시킬 수도 있으며 randMatrix() 함수를 이용한다.


>>> randMatrix(4) # 4x4 행렬 생성
>>> randMatrix(3,4) # 3x4 행렬 생성
>>> randMatrix(5, symmetric = True) # 5x5의 대칭행렬 생성


이 행렬의 요소는 100이하의 양의 정수로 채워진다.


[표 1] 행렬 객체의 생성 용례들

용법

내용

Martix(list)

Matrix([list1, list2,...])

Matrix(r, c, seq)

Matrix(r, c, func)

열벡터 생성

행렬 생성

seq를 이용하여 r x c 행렬 생성

함수를 이용하여 r x c 행렬 생성

eye(n)

n x n 단위행렬

zeros(n)

zeros(r, c)

n x n 영행렬

r x c 영행렬

ones(n)

ones(r, c)

n x n 일행렬

r x c 일행렬

diag(arg1, arg2, ...)

args 요소들의 단위행렬 생성

randMatrix(n)

randMatrix(r, c)

n x n 난수행렬 (대칭행렬은 symmetric=True 옵션을 지정)

r x c 난수행렬


 한 가지 주지할 사항은 Matrix 객체는 mutable 하다는 것이다. 따라서 immutability 가 필요한 곳(예를 들어 딕셔너리의 키)에는 사용할 수 없다. immutable행렬이 필요하다면 ImmutableMatrix 를 이용하면 된다.




Posted by 살레시오
,

  STM32 칩셋을 이용한 Maple이라는 아두이노 호환 보드가 있다. 아래는 메이플과 메이플미니 보드이다. leaflabs 라는 제조사에서 2010년도에 출시하였다.

아두이노 호환 핀배열을 가지면서 AVR기반의 보드들보다 고성능 칩셋을 사용하여 높은 성능을 가진다.


 하지만 아두이노두에(due)나 곧 출시될 제로(zero) 보드 및 타 제조사의 다양한 저가형 고성능 보드에 밀려서 유지가 힘들어 더이상 지원하지 않게 되었다는 공지가 나왔다.


    Maple end-of-life notice


하드웨어는 단종되었지만 여전히 소스는 github에 오픈되어 있으며 소소한 업데이트는 계속된다고 한다. [#00108]

Posted by 살레시오
,

  파이썬의 수학함수를 이용하기 위해서는 math 모듈을 import해야 한다. 기본 (표준) 모듈이므로 설치 과정 없이 다음과 같이 로드할 수 있다.


-------------------------------------------------------------------

             >>> import math

-------------------------------------------------------------------


이 모듈의 수학 함수는 표준 C언어의 그것들을 구현한 것이다. 실수 연산을 수행하며 대부분의 경우 float형을 반환한다.


 복소수 연산을 위해서는 cmath 모듈을 이용해야 한다. 이것도 역시 기본 모듈이므로 별도 설치 없이 다음과 같이 로드할 수 있다.


-------------------------------------------------------------------

             >>> import cmath

-------------------------------------------------------------------

이 모듈에는 복소수 연산을 위한 다양한 함수들이 있는데 여기에 잘 정리되어 있다.

 하지만 math 모듈은 인수가 실수 (스칼라) 에 대해서만 적용이 되고 cmath 는 복소수 (스칼라) 인 경우에만 적용이 된다는 단점이 있다. 만약 행렬 연산이 필요하다면 이 두 모듈은 사용할 수 없으며 numpy 를 사용해야 한다. 이 모듈은 파이썬의 고급 연산 분야의 기본 모듈로서 벡터 혹은 행렬에 대한 요소간 연산을 지원하므로 가장 적용 범위가 넓다. 또한 python(x,y) 나 winPython 같은 패키지를 사용하면 쉽게 인스톨 없이 바로 import 하여 사용할 수 있다.

winPyhon : 과학 계산용 파이썬 패키지

[#00107]


Posted by 살레시오
,

 파이랩(pylab)은 파이썬을 마치 MATLAB처럼 사용할 수 있도록 하는 목표를 가지고 개발되고 있는 모듈로서 내부적으로 numpy, scipy, 그리고 그래픽을 생성하기 위한 matplotlib 라는 모듈을 사용한다. 이 모듈은 matlab 사용자들을 python 쪽으로 옮겨오는데 편의를 주기 위해서 개발되기 시작한 것 같고 한 때 사용의 편의성 때문에 많이 사용되었던 것 같다. 특히 그래픽을 생성하는 기능은 MATLAB과 매우 흡사한데 이는 matplotlib 의 함수들은 MATLAB문법에 맞게 wrapping 해서 제공하기 때문이다.


 하지만 파이썬 커뮤니티 내부에서는 pylab은 몇 가지 이유로 사용하기를 권장지 않는 듯 하다. 가장 큰 이유는 그 안에서 사용되는 파이썬 모듈 간 구분이 잘 이루어 지지 않아 혼동을 준다는 것이다. 아래 포스트에 자세한 이유가 소개되어 있다.


 please stop using python


현재 pylab에 대한 자료가 별로 많지 않고 2013년 이후로 업데이트도 없다. 단지 하위 호환성을 일정 기간 유지하기 위해서 관련 내용을 완전히 삭제하고 있지는 않은 것 같다. 특히 수치 해석시 많이 사용되는 파이썬쉘인 ipython 을 사용할 때에는 더더욱 권장되지 않는다.




Posted by 살레시오
,

  winPython의 python 콘솔을 실행하면 pylab 이 기본적으로 import 되어서 함수들을 엄격하게 구분해서 사용하는 것이 무척 불편하다. pylab 을 사용하는 것은 파이썬 커뮤니티 안에서 권하지 않는다.


 파이썬 콘솔에서 백그라운드로 임포트되는 모듈들은 다음과 같이 'scientific'이라는 명령을 입력하면 상세한 내용을 확인할 수 있다.

-----------------------------------------------------------------------

>>> scientific


This is a standard Python interpreter with preloaded tools for scientific

computing and visualization. It tries to import the following modules:


>>> import numpy as np  # NumPy (multidimensional arrays, linear algebra, ...)

>>> import scipy as sp  # SciPy (signal and image processing library)

>>> import matplotlib as mpl         # Matplotlib (2D/3D plotting library)

>>> import matplotlib.pyplot as plt  # Matplotlib's pyplot: MATLAB-like syntax

>>> from pylab import *              # Matplotlib's pylab interface

>>> ion()                            # Turned on Matplotlib's interactive mode

>>> import guidata  # GUI generation for easy dataset editing and display


>>> import guiqwt                 # Efficient 2D data-plotting features

>>> import guiqwt.pyplot as plt_  # guiqwt's pyplot: MATLAB-like syntax

>>> plt_.ion()                    # Turned on guiqwt's interactive mode


Within Spyder, this interpreter also provides:

   * special commands (e.g. %ls, %pwd, %clear)

   * system commands, i.e. all commands starting with '!' are subprocessed

     (e.g. !dir on Windows or !ls on Linux, and so on)

-----------------------------------------------------------------------

 파이썬 콘솔 기동시에 pylab을 import 하지 않으려면 다음과 같은 과정을 거쳐야 한다. 먼저 Tools > Preferences 의 Console 탭에서 Advanced settings 항목으로 들어간다.

여기서 Default PYTHONSTARTUP scrip 를 선택하면 파이썬의 기본적인 세팅으로 기동하는 것이다. 아예 아무런 모듈도 import하지 않고 시작하려면 이것을 체크하면 된다.


 과학계산 모듈을 초기에 import 하는 일은 scientific_startup.py 에 기록되어 있는데 아래 그림과 같이 pylab을 로딩하는 부분을 주석 처리하면 pylab 이 import 되는 것을 막을 수 있다.


추가적으로


              %ls (파일리스트)

              %pwd (현재 디렉토리)

              %clear


등의 명령이 사용가능함을 알 수 있다.

Posted by 살레시오
,