MATLAB 기초 1.1 기본적인 MATLAB 명령어 1.2 행렬과 벡터 연산 1.3 제어문 1.4 입출력 1.5 2차원 그래픽 1.6 3차원 그래픽 1.7 스크립트 및 사용자 정의 함수
1.1 기본적인 MATLAB 명령어 1.1.1 행렬과 벡터 생성 행렬 생성 방법 전체 원소들은 대괄호([])로 둘러쌈 각 행의 원소들은 공백 또는 쉼포(,)로 분리 한 행이 끝나면 원소 끝에 세미콜론(;)을 붙이거나 엔터키를 사용 벡터(행벡터 또는 열벡터) 생성시 위와 동일한 규칙을 적용
3x3 행렬 생성 예
1x3 행벡터(또는 3x1 열벡터) 생성 예
일정 간격으로 증가 및 감소하는 벡터의 생성 콜론(:) 연산자 이용 % 증감값 생략시 디폴트 1
특수 행렬 생성 함수
특수 행렬 생성 예
1.1.2 행렬과 벡터 데이터 다루기 첨자(index) 이용 1차원 행렬은 1개, 2차원 행렬은 2개(행번호, 열번호), 3차원 행렬은 3개의 첨자(면번호, 행번호, 열번호)를 사용 첨자는 1부터 시작하는 정수이어야 함
행렬(또는 벡터)의 원소값 수정 예
행렬(또는 벡터)의 원소값 읽기 예
연속 또는 불연속 부행렬(submatrix) 지정 행렬 A의 i행에서 j행까지의 요소들 중 k열에서 l열까지의 요소들을 의미
한 행이나 한 열의 데이터에 접근 행렬 A의 i번째 행에서 j번째 행의 모든 요소에 접근(또는 모든 행 가운데 k번째 열에서 l번째 열의 요소에 접근) 파일로 저장된 데이터를 행렬로 읽어들인 후 각 데이터의 의미에 따라 각 변수에 저장시 자주 사용됨
예
1.2 행렬과 벡터 연산 전치 행렬(transpose matrix) 행과 열을 바꾸는 연산 연산자 : ' 예제
만일 행렬의 원소가 복소수라면 켤레 복소수에 대한 전치를 수행 단순 전치만을 수행하고자 할 때는 .' 사용
행렬의 덧셈과 뺄셈 연산의 대상인 두 행렬의 크기는 동일해야 함 행렬 상의 첨자가 같은 원소에 대해 연산 연산자 : +, -
행렬의 곱셈 행렬 X와 Y의 곱셈에서 X의 열크기와 Y의 행 크기가 일치해야 함 연산자 : * 예제
행렬의 나눗셈 좌측 연산자 \ X = A \ b 우측 연산자 ⁄ A * X = b의 해를 구하고자 하는 경우 X=b ⁄ A
예
행렬의 거듭제곱 정방 행렬(square matrix) A, 스칼라 p에 대해 A^p는 A를 p번 곱하는 것을 의미 예 단 행렬 A는 정방행렬(square matrix)이어야 함 예
.(dot) 연산자 각 원소끼리 곱 또는 나누는 등의 연산시 사용 예제
자주 사용되는 행렬 연산 함수
예
예
1.3 제어문 1.3.1 If, else와 elseif 가장 일반적인 조건문
예 양의 정수를 입력받아 그 수가 짝수인지 홀수인지를 판별하는 M-파일
1.3.2 switch 문 여러가지의 경우를 평가하는 다중 택일 제어문
예
1.3.3 for 문 조건 만족시 반복 작업을 위한 제어문 예
1.3.4 while 문 for 문과 마찬가지로 조건이 만족될 때까지 반복적으로 문장을 수행하는 제어문 예
1.4 입출력 1.4.1 Input 함수 키보드를 통한 데이터 입력 화면에 메시지를 출력하고 사용자가 값을 입력할 때까지 기다렸다가 입력 완료시 변수 R에 입력값을 반환 문자열을 입력하려면 option으로 ‘s’를 추가
예
1.4.2 disp 함수 변수명을 출력하지 않고 변수의 값만 출력 예
1.4.3 fprintf 함수 파일에 임의의 데이터를 쓰거나 데이터를 특정 형태로 명령창에 출력시 사용 인자1, 인자2, …를 format에 의해 정의된 형식에 맞추어서 출력 format은 ‘%’로 시작하는 형식 변환 문자이며, 인자의 출력 형식을 조정하는 역할
fprintf에서 사용되는 형식 변환 문자
예
1.5 2차원 그래픽 1.5.1 그래프 그리기 plot 가장 간단한 그래픽 함수 linespec을 사용하여 벡터 x에 대한 벡터 y의 그래프를 도시 Linespec : 선의 색상 및 종류, 마커를 나타내는 문자열 마커 : 사용된 각 데이터 좌표값에 표시되는 기호
linespec
하나의 그림창에 여러 그래프를 도시할 때 예
1.5.2 그래프의 겹쳐 그리기 Hond on/off Hold on Hold off 이미 존재하는 그래픽 위에 덮어서 그리고자 할 때 사용 Hold off 더 이상 같은 그림창에 그래프를 추가하지 않을 때 사용
Hold on/off 사용 예 그림 1.5에 y3=2+sin(x)의 그래프를 추가
[그림 1.5]에
ㅡ 그래프 축의 최대값과 최소값 지정 v는 x축 및 y축의 최소 및 최대값의 행벡터 예
1.5.3하나의 그림창에 여러 그래프 그리기 subplot 하나의 그림창을 mXn의 작은 창으로 나누고, p번째 창에 그래프를 그림 하부 작은 창의 번호는 좌측 상단에서 우측으로, 위에서 아래로 차례로 1,2,…m*n 순으로 지정
예
1.5.4 그래픽 객체의 라벨링 그래프의 제목과 축 이름 붙이기 예
범례 출력하기 그래프 객체에 대한 설명문 여러 개의 그래프가 그려졌을 때 이를 구분하기 위해 사용 예
텍스트 출력하기 그래프 객체의 특정 부분에 대한 설명을 위해 추가되는 문자열 text 또는 gtext 함수 사용 예
격자 추가 및 제거하기 격자를 그리려면 grid on, 제거하려면 grid off 예
1.6 3차원 그래픽 1.6.1 윤곽선 그래프 contour N개의 선을 이용하여 xy 평면에 대한 높이 z의 윤곽선을 x, y, z는 행렬이어야 하므로 입력으로 벡터가 사용되었다면 meshgrid를 사용하여 행렬로 변환한 후 사용해야 함
예 에 대해 함수 의 윤곽선 그래프
1.6.2 면 그래프 면을 그리는 함수
mesh 면을 그리기 위해 가장 많이 사용되는 함수 네 개의 행렬 데이터 x,y,z,C의 입력에 대한 3차원 그물 격자 그래프를 도시 C가 생략되면 z를 C로 사용하여 높이 z에 비례하는 색으로 그림 x, y, z는 행렬이어야 하므로 입력으로 벡터가 사용되었다면 meshgrid를 사용하여 행렬로 변환한 후 사용
예 에 대한 함수 의 3차원 그물 격자 그래프
surf 면을 그리기 위한 또다른 함수 네 개의 행렬 데이터 x,y,z,C의 입력에 대한 3차원 표면 그래프를 도시 C가 생략되면 z를 C로 사용하여 높이 z에 비례하는 색으로 그림 x, y, z는 행렬이어야 하므로 입력으로 벡터가 사용되었다면 meshgrid를 사용하여 행렬로 변환한 후 사용
예 에 대한 함수 의 3차원 표면 그래프
meshc Mesh와 contiur의 합성어로서 mesh를 사용하여 그려진 3차원 격자 그래프 아래에 윤곽선 그래프가 더해짐 예
surfc surf와 contiur의 합성어로서 surf를 사용하여 그려진 3차원 격자 그래프 아래에 윤곽선 그래프가 더해짐 예
1.7 스크립트/사용자 정의함수 M-파일 실행 문장들을 포함하고 있는 파일 두가지 유형 스크립트 M-파일 함수 M-파일 일련의 긴 명령들을 한꺼번에 자동으로 수행하는 파일 함수 M-파일 외부로부터 값을 입력받아 함수 내에서 어떤 연산을 수행한 후 연산 값을 반환하는 파일
1.7.1 스크립트로서의 M-파일 사용 어떤 작업을 나중에 똑같거나 비슷하게 여러 번 수행해야 할 경우, 다시 루틴을 작성하기 위해 소비되는 시간을 줄이기 위함 명령창에서 이루어질 수 있는 모든 명령문을 M-파일에 작성한 후 명령창에서 파일명을 입력하여 실행 예 1.4절의 제어문에서 예를 든 프로그램들
1.7.2 함수로서의 M-파일의 사용 외부로부터 값을 입력받아 연산을 수행한 후, 다시 외부로 값을 반환하는 함수 파일명은 함수명과 동일하게 지정해야 함 입력값과 반환값의 수에 따른 형태
예 세 정수를 입력받아 곱을 반환하는 함수 M-파일 파일명은 함수명과 동일하게 gob.m으로 지정 명령창에서 실행하려면 파일명과 입력 인자를 입력