550 likes | 1.18k Views
MATLAB 개요와 응용 1 장 MATLAB 시작하기. MATLAB 시작하기. 이 장의 내용 MATLAB 의 여러 창 (window) 들의 특성과 목적 기술 스칼라의 산술연산 및 기본 수학함수의 사용 . 스칼라 변수들 ( 할당 연산자 ) 의 정의 및 변수들의 사용 방법 스크립트 (script) 파일에 대한 소개와 간단한 MATLAB 프로그램의 작성 , 저장 및 실행 MATLAB 의 특징 Interpreter 방식의 언어
E N D
MATLAB 시작하기 • 이 장의 내용 • MATLAB의 여러 창(window)들의 특성과 목적 기술 • 스칼라의 산술연산 및 기본 수학함수의 사용. • 스칼라 변수들(할당 연산자)의 정의 및 변수들의 사용 방법 • 스크립트(script) 파일에 대한 소개와 간단한 MATLAB 프로그램의 작성, 저장 및 실행 • MATLAB의 특징 • Interpreter 방식의 언어 • Compiler 방식의 언어( C, Pascal, Fortran 등) • 수학계산 및 가시화(visualization)에 매우 편리함 • 선형대수, 데이터 분석, 신호처리, 수치적분 등 많은 과학계산용 내장함수를 제공함 • 사용자에 의한 함수 작성이 편리 • 배우기 쉽고 사용이 편하다. • 다양한 분야의 광범위한 Toolbox를 제공 1장 매트랩 시작하기
MATLAB의 데스크탑 창 • MATLAB을 실행하면, 데스크탑 창이 열리며, 기본 화면에는 Command Window, Current Directory Window, Command History Window 등 세 개의 작은 창이 포함되어 있다. • 창의 왼쪽 하단부에 있는 Start 버튼을 이용하여 MATLAB의 여러 도구와 기능에 접근할 수 있다. 1장 매트랩 시작하기
Default desktop layout Command Window Only MATLAB의 데스크탑 창 • 명령어 창(Command Window) • MATLAB을 실행시키면 나타나는 메인 창. • Desktop 메뉴→Desktop Layout 메뉴에서 명령어 창의 모양을 선택함. “Command Window Only”를 선택하면, 명령어 창 하나만 보임. 1장 매트랩 시작하기
Toolbar Workspace Window 사용된 변수들에 대한 정보 제공 그림창 그래프 명령어가 실행되면 자동 생성됨 Editor Window 프로그램 작성 및 편집 Command History Window 명령어 창에서 입력된 명령어들이 기록되어 있음 MATLAB의 여러 창 1장 매트랩 시작하기
MATLAB Help Windows 1장 매트랩 시작하기
undock dock 창의 분리(undock)와 재결합(dock) 1장 매트랩 시작하기
명령어 입력을 위해서는 커서 ‘|’ 가 프롬프트 ‘>>’ 바로 뒤에 놓여야 함 명령어 창에서의 작업 • 명령어 창은 MATLAB의 메인 창으로 명령어의 실행, 사용자가 작성한 프로그램의 실행, 다른 창 열기, 소프트웨어의 관리 등에 사용된다. • 명령어 입력을 위해서는 커서|가 프롬프트>>바로 뒤에 놓여야 한다. • 명령어를 표시하고 Enter 키를 누르면, 명령어가 실행된다. 항상직전에 입력한 명령어만 실행되며, 전에 실행된 다른 것들은 변동이 없다. • 명령어 창에서 커서를 윗줄로 옮겨서 이전 명령어를 수정하여 다시 실행시키는 것은 불가능하다. 1장 매트랩 시작하기
명령어 창(Command Window)에서의 작업 • 명령어와 명령어 사이에 콤마(,)를 넣어 여러 명령어를 한 줄에 표시할 수 있으며, Enter 키를 누르면 왼쪽에서 오른쪽 순서대로 명령어가 수행된다. • 명령어 창에서 커서를 윗줄로 옮겨서 이전 명령어를 수정하여 다시 실행시키는 것은 불가능하다. • 위쪽 방향키↑를 누를 때마다 이전에 입력했던 명령어가역순으로 프롬프트>> 다음에나타난다. 명령어가 >> 다음에 나타나면, 명령어를 수정하거나 그대로 실행시킬 수 있다. 아래쪽 방향키↓는 위쪽 방향키와 반대의 순서대로 이전 명령어들을 불러낼 수 있다. • 명령어가 너무 길어 한 줄에 쓸 수 없는 경우, 마침표 세 개...을 찍고 Enter 키를 누르면 다음 줄에서 이어서 쓸 수 있다(총 4096 글자까지) 1장 매트랩 시작하기
세미콜론(;)과 % 표시, clc 명령어 • 명령어 창에 명령어를 표시하고Enter키를 누르면, 명령어가 실행되어 출력이 명령어 창에 표시되는데, 명령어 끝에세미콜론(;)을 붙이면 출력이 표시되지 않는다. • 세미콜론은 결과의 양이 상당히 많거나 결과를이미 알고 있을 때 유용하다. • 여러 명령어를 한 줄에 쓸 때 명령어와 명령어 사이에 콤마 대신 세미콜론을 쓰면 출력이 화면에 표시되지 않는다. • 기호 %를 명령어 줄 제일 앞에 쓰면 이 줄은주석문(comment)으로 지정되어 Enter 키를 눌러도실행이 되지않는다.같은 줄에서 명령어 다음에 % 기호와 텍스트를 같이 쓰게 되면, 주석문은 명령어의 수행에 전혀 영향을 주지 않는다. • 일반적으로 명령어 창에서 주석문을 붙일 필요는 없으나, 프로그램에서는 기술할 사항을 추가하거나 프로그램 설명을 위해 종종 주석문을 사용한다. • clc 명령어는 명령어 창에서 입력한 명령어들과 결과 출력물들을 지워서 명령어 창을 깨끗이 만든다. • clc 명령어로 이전에 수행된 어떠한 것도 변하지는 않으며, 이전에 정의된 변수들도 존재하며 재사용이 가능하다. 방향키↑를 이용하여 이전 명령어를 불러낼 수도 있다. 1장 매트랩 시작하기
명령어기록 창(Command History Window) • Command History 창은 명령 창에서 그 동안 입력했던 명령어들의 목록을 보여주며, 현재 명령어 창에서 입력한 명령어 뿐만 아니라 이전에 입력했던 명령어들도 포함된다. • Command History 창에 있는 명령어들은 명령어 창에서 다시 사용할 수 있다. • MATLAB은 이전에 입력한 명령어들을 버퍼에 저장하므로 과거 입력기록들을 Command History 창에서 볼 수 있다. • Command History 창에서 원하는 명령어를 마우스로 명령어 창으로 끌고 올 수 있으며(dragging), 필요하면 ← 또는 → 화살표를 이용하여 원하는 위치에서 명령어를 추가하거나 수정하고 Enter 키를 눌러 실행시킬 수 있다. • 명령어기록 창에서 원하는 명령어를 마우스로더블 클릭(double click)하면 해당 명령어가 바로 실행된다. • 명령어기록 창에 있는 명령어들은 원하는 명령어들을 선택한 후 키보드의 delete 키를 누르거나 Edit 메뉴에서 Delete Selection을 선택하여 삭제할 수 있다. 또는 삭제하기 위해 선택한 명령어들 위에서 마우스 우측 버튼을 눌러 나온 팝업메뉴에서 Delete Selection을 선택해도 된다. 1장 매트랩 시작하기
스칼라 산술 연산 • MATLAB에서 사용하는 산술연산자들의 기호 : 주) 한글Windows에서는 ‘\’가 ‘\’(키보드의 \)로 표시됨 • 왼쪽 나눗셈을 제외한 나머지 기호들은 대부분의 계산기에서와 같다. 스칼라의 경우, 왼쪽 나눗셈(left division)은 오른쪽 나눗셈(right division)의 역수이지만, 배열에 대한 연산(3장 참조)에 대해서는 왼쪽 나눗셈이 주로 사용된다. 1장 매트랩 시작하기
스칼라 산술 연산에서의 우선 순위 • MATLAB에서의 산술 연산 우선 순위 • 여러 연산이 포함된 식에서, 우선순위가 더 높은 연산이 더 낮은 연산보다 먼저 수행된다. • 둘 이상의 연산이 같은 우선순위를 가지면, 왼쪽에서 오른쪽으로 식이 수행된다. • 계산 순서를 바꾸기 위해 괄호를 사용할 수 있다. 1장 매트랩 시작하기
산술연산 예 (1/3) >> 4*50+3*100+10^2-400/2 ans = 400 >> 2^5/(2^5-1) ans = 1.0323 >> 2*(sqrt(5)-1)/(sqrt(5)+1)^2-1 ans = -0.7639 >> 10*acos(-1) ans = 31.4159 >> x=2; y=6+x, x=y+7 y = 8 x = 15 >> exp(3); % e3 >> log10(10^5); % log10 105 연산 순서:수학의 일반 규칙과 동일 1. 괄호 먼저 계산한다 2. 지수 계산 3. 곱하기, 나누기는 왼쪽에서 우측 방향으로 4. 더하기, 빼기는 왼쪽에서 우측 방향으로 ;(세미콜른)계산결과 표시 억제 ,(콤마)한 줄에 여러 명령어를 입력하면서 계산결과 표시 %프로그램을 설명할 때 사용하며, 명령과는 무관함 1장 매트랩 시작하기
>> 7+8/2 % 8/2가 먼저 수행됨 ans = 11 >> (7+8)/2 ans = 7.5000 >> 4+5/3+2 % 5/3이 먼저 수행됨 ans = 7.6667 >> 5^3/2 % 53이 먼저 수행됨 ans = 62.5000 >> 27^(1/3)+32^0.2 % 27(1/3)+320.2 ans = 5 >> 27^1/3+32^0.2 % (271)/3 + 320.2 ans = 11 >> 0.7854-(0.7854)^3/(1*2*3)+0.785^5/… (1*2*3*4*5)-(0.785)^7/(1*2*3*4*5*6*7) ans = 0.7071 >> 7/2 ans = 3.5000 >> 7\2% \대신 \가 표시됨(한글윈도) ans = 0.2857 >> ans ans = 0.2857 산술연산 예 (2/3) • MATLAB에서 산술연산은 명령어 창에 수식을 입력한 후 Enter 키를 누르면 계산이 되며, 그다음 두 줄에 걸쳐‘ans=’과 결과(답)가 표시된다. 1장 매트랩 시작하기
← 연산자 사이에 공백이 있어도 상관없다! 산술연산 예 (3/3) >> 2*4^3 + 5 % 243 + 5 ans = 133 >> (2*4)^3 + 5 % (24)3 + 5 ans = 517 >> (2* 4) ^3 / 5 % (24)3/5 ans = 102.4 >> 9^(1/2) % 91/2 ans = 3 >> 9^1/2 % 91/2 ans = 4.5000 • 오류를 피하거나 식을 읽기 쉽도록 괄호를 적절하게 사용하는 것이 좋다. 1장 매트랩 시작하기
출력 형식 (1/3) • MATLAB의 기본(default) 출력 형식은 소수점 이하 네 자리를 가진 고정소수점(short라고 부름)이다. >> 4+5/3+2 ans = 7.6667 • 기본 출력형식은 format 명령어로 바꿀 수 있으며, format 명령어가 실행된 이후의 모든 출력은 규정된 형식으로 표시된다. 자세한 형식은 명령어 창에서help format을 입력하면 알 수 있다. • 수를 화면에 표시하는 형식은 MATLAB이 수를 계산하고 저장하는 방법에는 영향을 미치지 않는다. 1장 매트랩 시작하기
출력 형식 (2/3) 1장 매트랩 시작하기
>> 7+8/2 % 8/2가 먼저 수행됨 ans = 11 >> (7+8)/2 ans = 7.5000 >> 4+5/3+2 % 5/3이 먼저 수행됨 ans = 7.6667 >> 5^3/2 % 53이 먼저 수행됨 ans = 62.5000 >> 27^(1/3)+32^0.2 % 27(1/3)+320.2 ans = 5 >> 27^1/3+32^0.2 % (271)/3 + 320.2 ans = 11 >> 0.7854-(0.7854)^3/(1*2*3)+0.785^5/… (1*2*3*4*5)-(0.785)^7/(1*2*3*4*5*6*7) ans = 0.7071 >> 7/2 ans = 3.5000 >> 7\2% \대신 \가 표시됨(한글윈도) ans = 0.2857 >> ans ans = 0.2857 출력 형식 (3/3) • MATLAB의 산술연산은 명령어 창에서 수식을 입력하고 Enter 키를 누르면 수식이 계산되며, 다음 두 줄에 걸쳐 ans=과 결과가 표시된다. 1장 매트랩 시작하기
기본 수학 내장함수 • MATLAB은 광범위한 내장함수 library를 갖고 있으며, 수식에 포함할 수 있다. • 내장함수는 함수이름과 괄호 속의인자(argument)로구성된다. 예)sqrt(x): 수의 제곱근을 계산하는 함수. 함수 이름은 sqrt, 인자는 x이다. • 함수의 인자는 수, 또는 수치가 할당된 변수, 수와 변수로 구성된 계산가능한 수식 등이 될 수 있다. 함수가 인자에 포함될 수도 있다. >> sqrt(64) % 수 인자 ans = 8 >> sqrt(50+14*3) % 수식 인자 ans = 9.5917 >> sqrt(54+9*sqrt(100)) % 함수가 포함된 인자 ans = 12 >> (15+600/4)/sqrt(121) % 수식이 포함된 인자 ans = 15 1장 매트랩 시작하기
MATLAB 기본 수학 내장함수 • 전체 내장함수 목록은 Help Window에서 종류별로 분류된 목록을 참조한다. 1장 매트랩 시작하기
MATLAB 삼각함수 • 각이 라디안 단위일 때삼각함수는 sin(x), cos(x), tan(x), cot(x)이고 역삼각함수는 asin(x), acos(x), atan(x), acot(x)이다. • 각이 도(degree) 단위일 때삼각함수는 sind(x), cosd(x), tand(x), cotd(x)이고 역삼각함수는 asind(x), acosd(x), atand(x), acotd(x)이다. • 쌍곡삼각함수(hyperbolic trigonometric function)는 sinh(x), cosh(x), tanh(x), coth(x)이다. π는 pi로입력한다. 1장 매트랩 시작하기
어림 함수(rounding function) 1장 매트랩 시작하기
variable_name= 수치 값 또는 계산 가능한 식 • 할당 연산자 =의 좌변은 한 개의 변수이름만을 포함할 수 있다. 우변이 수식인 경우 수치 값이 할당된 변수들은 수식에 포함될 수 있다. • Enter 키를 누르면 우변의 수치 값이 변수에 할당되며, MATLAB은 다음 두 줄에 걸쳐 변수와 할당된 값을 화면에 표시한다. >> x=15 % 수 15가 변수 x에 할당됨 x = 15 >> x=3*x-12 % 새로운 값이 x에 할당됨 x = 33 스칼라 변수와 할당 연산자 (1/3) • 변수는 한 개의 문자, 또는 여러 문자들(숫자 포함)의 조합으로 이루어진 이름으로 수치 값이 할당된다. • 변수는 데이터를 저장할 메모리 장소의 이름을 나타내며, 새로운 변수가 정의되면 MATLAB은 배정받은 변수의 값이 저장될 적절한 메모리 공간을 할당한다. 변수가 사용되면 변수에 저장된 데이터가 사용된다. • 변수에 새로운 값이 할당되면, 메모리 위치의 내용이 갱신된다. • 할당 연산자(assignment operator) ‘=’는 우측 값을 좌측 변수에 할당한다. 1장 매트랩 시작하기
우변의 수식 값을 C에 할당함 >> a=12 % 수 12를 a에 할당함 a = 12 >> B=4 % 수 4를 B에 할당함 B = 4 >> C=(a-B)+40-a/B*10 C = 18 >> a=12; >> B=4; >> C=(a-B)+40-a/B*10; >> C C = 18 >> a=12, B=4; C=(a-B)+40-a/B*10 a = 12 C = 18 할당 연산자 (2/3) • 명령어 끝에 세미콜론을 붙이고 Enter 키를 누르면, 실행결과가 화면에 출력되지 않는다. 물론 변수는 메모리에 저장된다. • 이미 생성된 변수의 이름을 입력하면 변수와 값이 화면에 출력된다. • 같은 줄에 여러 할당문을 쓰려면, 할당문 사이에 콤마 또는 세미콜론을삽입하며, Enter 키를 누르면 왼쪽에서 오른쪽으로 할당문이 실행되어 결과가 화면에 출력된다. 콤마 대신 세미콜론을 쓰면 변수는 화면에 출력되지 않는다. 1장 매트랩 시작하기
>> ABB=72; >> ABB=9; >> ABB % 변수의 현재 값이 출력됨 ABB = 9 >> x=0.75; >> E=sin(x)^2+cos(x)^2 E = 1 할당 연산자 (3/3) • 이미 생성된 변수는 새로운 값을 다시 할당받을 수도 있다. • 일단 변수가 정의되고 나면, 변수는 함수의 인자(argument)로 사용될 수 있다. 1장 매트랩 시작하기
변수(variable) 이름에 대한 규칙 • 변수 이름은 문자로 시작해야 하며, 길이는 MATLAB 7의 경우 63개(6.0 버전까지는 31개)까지 가능하다. 예) var, temp_1, temp_2, x, y, ave_1 • 이름에 문자, 숫자, ‘ _ ’ 등을 포함할 수 있으며, 마침표, 콤마, 세미콜론 등은 포함할 수 없다. 이름 사이에 공백을 둘 수 없으며, 필요하면 ‘_’를 이용한다. • 변수는 대∙소문자를 구별한다. 즉 다음 변수들은 모두 다른 변수들이다: 예) AA, Aa, aA, aa • 내장함수 이름(예: cos, sin, exp, sqrt, …)은 사용하지 않도록 한다. 함수 이름을 변수로 정의하게 되면, 해당 세션에서는 함수를 사용할 수 없다. • MATLAB에 의해 예약된 17개의 키워드도 변수 이름으로 사용할 수 없다. 명령어 창에서 키워드를 입력하면, 키워드는 파란 색으로 표시된다. 만일 사용자가 키워드를 변수 이름으로 사용하려고 하면 에러 메시지가 표시된다. 명령어 iskeyword를 입력하면 화면에 키워드들이 출력된다. 예) break, case, catch, continue, else, elseif, end, for, function, global, if, otherwise, persistent, return, switch, try, while 1장 매트랩 시작하기
변수(variable) 이름에 대한 규칙 • 명령어 창에서 키워드를 입력하면, 키워드는 파란 색으로 표시되며,사용자가 키워드를 변수 이름으로 사용하려고 하면 에러 메시지가 표시된다. • 명령어 iskeyword를 입력하면 화면에 키워드들이 출력된다. • MATLAB은 기동될 때, 자주 사용되는 변수들을 다음과 같이 미리 정의한다. ans가장 최근의 계산값을 저장하고 있는 임시 변수 eps두 수 사이의 최소 차이로 2-52≈2.2204ⅹ10-16. 예) 1.0에서 바로 다음 부동소수점까지의 거리 i, j허수 Inf무한히 큰 수(Infinity) NaNNot-a-Number. 0/0과 같이 정의할 수 없는 수치결과를 나타낸다 piπ=3.1415926535897… realmax, realmin, nargin, nargout등 • 위 변수들을 다른 값으로 다시 정의할 수도 있다. 그러나 변수 pi, eps, inf는 많은 응용프로그램에서 자주 사용되는 변수이므로굳이 다른 값으로 다시 정의하지는 않는다. 그러나 i나 j같은 변수는 응용 프로그램에 복소수가 포함되지 않는 경우 루프와 관련하여 다른 변수로정의하기도 한다. 1장 매트랩 시작하기
반드시 공백이 들어가야 함 변수 >> a=4; b=3; sum=a+b sum = 7 >> a=7; sum sum = 7 a의 값이 바뀌어도 Excel과 달리 sum의 값은 변동이 없다. • 명령이 길어서 한 줄에 입력할 수 없는 경우, 마침표(.) 세 개를 찍고 Enter 키를 눌러도 커서의 위치만 다음 줄로 바뀔 뿐 명령은 실행되지 않는다. 연산자는 분리할 수 있으나, 변수명은 분리해서 쓸 수 없다. >> Class_1=20; Class_2=15; Class_3=14; Class_4=17; Total_Number=240; >> ave = (Class_1 + Class_2 + Class_3 + Class_4) … / Total_Number * 100 ans = 27.5 >> ave=(Class_1+Class_2+Class_3+Class_4)/Total_ … ??? ave=(Class_1+Class_2+Class_3+Class_4)/Total … Error: The input character is not valid in MATLAB statements or expressions. 1장 매트랩 시작하기
변수 관리에 유용한 명령어들 • 명령어 창(Command Window)에서 다음 명령어를 실행함으로써 생성된 변수들을 삭제하거나 변수들에 대한 정보들을 얻을 수 있다. 1장 매트랩 시작하기
명령창에서 사용하는 일반 명령어 • clc명령창의 내용을 모두 지운다 (Clears the Command window) • exist(‘var’) ‘var’ 이름의 파일이나 변수가 있는지 확인한다 • quit MATLAB을 끝낸다 • helpwin 도움말 창을 연다 • help 명령어 명령창에서 ‘명령어’에 간단한 설명을 보여준다 • lookfor 단어단어와 관련된 명령어를 찾아준다 (명령어를 잘 모를 때 사용함) • cd디렉토리 위치를 변경하거나 현재 위치를 알려준다 1장 매트랩 시작하기
프로그래밍에서의 ‘=’의 의미 • MATLAB을 포함한 프로그래밍 언어에서의 ‘=’ 부호는 수학에서의 ‘같다’라는 의미보다는 할당(assignment)이나 대체(replacement)의 의미를 갖는다. 예) >> x=5 % x라는 변수를 만들어 5라는 값을 할당(저장)한다. >> x = x + 10 % 현재 x의 값에 10을 더한 결과를 다시 x에 저장하여 기존의 값을 대체한다. ‘=’ 부호의 의미가 수학과 달리 양변이 같다는 의미가 아니므로 좌변에는 반드시 변수가 와야 하며, 상수나 식이 오게 되면 다음과 같이 에러 메시지를 얻게 된다 : >> x*2=6 ??? x*2=6 | Error: The expression to the left of the equals sign is not a valid target for an assignment. 1장 매트랩 시작하기
>> re = 2; im = 5; >> c = re + im*i c = 2.0000 + 5.0000i >> (1+3i)/(1-3i) ans = 0.8000 + 0.6000i >> sqrt(-1) ans = 0 + 1.0000i >> c=10-2*i % c=10-i*2 c = 10.0000 - 2.0000i >> y = 10/2*i % y=(10/2)i y = 0 + 5.0000i >> y = 7/2i % y=7/(2i) y = 0 - 5.0000i 복소수 연산 (1/3) • MATLAB은 i 또는 j를 이용하여 복소수를 나타내며, 복소수 연산을 자동으로 처리한다. >> c=10-2i % c=10-2j c = 10.0000 - 2.0000i • 변수와 i 사이에는 ‘*’가 필요하지만, 숫자와 i 사이에 ‘*’를 넣지 않아도 된다. 숫자와 i가 붙은 경우에는 한 개의 허수로 다뤄지지만, 숫자와 i 사이에 ‘*’가 있는 경우에는 숫자와 i의 곱으로 취급되므로 예상치 못했던 결과가 나올 수 있으므로 주의가 필요하다. 1장 매트랩 시작하기
>> 5 + sin(.5)i Error: Unexpected MATLAB expression. >> 5 + sin(.5)*i ans = 9.7943 복소수 연산 (2/3) • MATLAB에서 i 나 j는 허수를 나타내는 데 사용되므로 다른 변수들처럼 임의로 값을 할당하게 되면 엉뚱한 결과를 얻을 수 있으므로 주의해야 한다. >> i=10; im=4; % 변수 i에 10이 할당됨 >> c=1+0.2i% 0.2i 는 허수임 c = 1.0000 – 0.2000i >> c=1+0.2*i% 0.2와 변수 i(=10)를 곱함 c=3 >> c=1+im*i% 변수 im(=4)과 변수 i(=10)를 곱함 c=41 1장 매트랩 시작하기
복소수 연산 (3/3) >> exp(pi/2*i)% e(π/2)i ans=0.0000+1.0000i >> i^2 ans = -1 >> (-2+4i)*(-2-4i) ans = 20 >> c1=1-2i; c2=3*(2-sqrt(-1)*3); c3=sqrt(-2); c4=(c1+c2)/c3 ans = - 7.7782 - 4.9497i >> c = 1-2i; >> abs(c), angle(c) ans =2.2361 ans = -1.1071 >> conj(c), real(c), imag(c) ans = 1.0000 + 2.0000i ans = 1 ans = -2 1장 매트랩 시작하기
연습 • MATLAB을 이용하여 다음 계산을 수행하라. • 다음 계산을 하기 위한 MATLAB 명령어를 작성하라. 1장 매트랩 시작하기
MATLAB 파일 • MATLAB은 명령창에서 명령어를 한 줄씩 직접 수행시키거나 파일에 수행할 모든 명령어를 기록하고 저장한 후 파일을 수행시킬 수 있다. • 반복된 명령어들을 수행시켜야 하거나, 어떤 조건이나 앞의 계산결과에 따라 후속 명령어를 결정해야 하는 경우, 또는 다양한 입력데이터에 대해 같은 일련의 명령어들을 수행해야 하는 경우에는 명령창에서의 대화식 모드는 불편하며 명령어가 저장된 파일을 이용하여 실행시키는 것이 편리하다. • MATLAB용 파일 종류 • M 파일, MAT 파일, MEX 파일, diary 파일, 입력데이터용 text • M 파일 • 스크립트(script) 파일과 함수(function) 파일 두 가지가 있으며, 매트랩에 내장된 Editor나 WINDOWS의 메모장을 이용하여 표준 ASCII 파일로 작성한다. • 확장자는 m이다. 예) test.m 1장 매트랩 시작하기
스크립트(Script) 파일의 특징 • 스크립트(script) 파일은 명령창에서 입력하는 명령들을 파일에 모두 저장한 형태로서,프로그램이라고도한다. • 스크립트 파일을 실행시키면, MATLAB은 파일 내의 명령어들을 명령어 창에서 입력하는 것처럼파일에 기록된 순서대로 실행시킨다. • 스크립트 파일이 결과를 출력하는 명령어를 포함하고 있다면,출력은 명령어 창에 표시되며, 그래픽 출력은 그림 창(Figure Window)에 출력된다. • 스크립트 파일은 편집, 수정, 변경이 가능하며여러 번 실행시킬 수 있으므로 스크립트 파일을 이용하는 것이 편리하다. • 스크립트 파일은 어떠한 텍스트 편집기에서도 작성과 편집이 가능하며, MATLAB 편집기로 붙여넣기할 수 있다. • 스크립트 파일은 저장이 되면 확장자 .m이 사용되므로M-파일이라고도한다. • 스크립트 파일의 실행으로 만들어진 변수는전역변수(global variable)로서 workspace에서 저장되어 명령어 창에서 언제든지 이용할 수 있다. 1장 매트랩 시작하기
MATLAB 메뉴의 File→New→M-File을 선택하거나, 메뉴 밑의 Toolbar에서 아이콘 을 선택하면, Editor 창이 실행된다. 이 Editor 창에서 프로그램을 작성하고 예를 들어 test.m으로 저장을 한 후, 매트랩 명령어 창에서 >> test라고 입력하면 프로그램이 수행된다. MATLAB m 파일의 생성 1장 매트랩 시작하기
줄 번호 스크립트 파일의 생성과 저장 • 스크립트 파일의 이름은 MATLAB 변수 규칙을 따르며 MATLAB이 사용하는 변수명이나 파일 내에서 사용하는 변수명과 같은 이름을 사용해서는 안 된다. • 파일 저장은 File메뉴에서 Save 또는 Save As...를 선택하고, 저장위치를 선택한 후 파일 이름을 입력한다. 저장할 때 MATLAB이 확장자 .m을 파일이름에 붙인다. 1장 매트랩 시작하기
ASCII code 000(0x00)~047(0x2F) 1장 매트랩 시작하기
ASCII code 000(0x30)~047(0x7F) 1장 매트랩 시작하기
(10글자+CR/LF 2글자) x 1byte=12 bytes ASCII 파일(텍스트 파일)의 예 • ASCII 파일(텍스트 파일)은 글자를 한 바이트의 ASCII 코드로 저장한다. 따라서 12라는 숫자는 크기 개념이 없고 ‘1’과 ‘2’라는 문자로 이루어진 것으로 생각하며 두 바이트로 저장된다. 1장 매트랩 시작하기
스크립트 파일 생성시 주의할 점 • 스크립트 파일의 이름은 변수 이름과 마찬가지로문자로 시작해야 하며, 숫자를 포함할 수 있고 이름의 길이는 31글자까지이다. • 스크립트 파일의 이름을 파일 내의 변수 이름과 같이 하게 되면, 프로그램 수행을 위해 스크립트 파일 이름을 입력했을 때 MATLAB은 변수 값을 돌려주게 되므로 변수를 메모리에서 제거하지 않는 한 스크립트 파일을 실행시킬 수 없게 된다. • 스크립트 파일 이름으로 MATLAB 명령어나 함수 이름을 붙이면 안 된다. • exist 명령을 이용하면 변수나 함수, 파일이 존재하는지 알 수 있다. exist name [kind]또는 exist (‘name’ , [‘kind’] ) 특정한 kind(file, var, builtin or dir)에 대해 name의 존재여부를 알려준다. name이 존재하지 않으면 0을, workspace에 있으면 1을, name이 MATLAB search path에 있는 M-file이면 2를 돌려준다. • MATLAB이 제공하는 함수라고 해서 모두 내장함수는 아니다. 내장함수는 MATLAB의 기본함수로서, 이 내장함수를 이용한 함수는 내장함수가 아니다. 예) 평균값을 구하는 mean() 함수는 내장함수가 아니므로 exist(‘mean.m’, ‘file’) 을 수행하면 2를 얻지만, exist(‘mean’, ‘builtin’)을 수행하면 0을 얻는다. 1장 매트랩 시작하기
파일이 저장된 디렉토리와 현재 디렉토리가 다르면, M 파일이 실행되지 않고 에러메시지가 나온다. 명령창에서 >> edit 파일명 을 수행하면, editor가 실행되면서 파일이 열린다. Editor의 docking과 프로그램 실행 • Editor의 dock 아이콘 을 클릭하면, Editor가 MATLAB 데스크탑 환경에 통합된다. undock 아이콘 을 누르면 원상 복귀된다. 1장 매트랩 시작하기
디렉토리 변경 (1/2) • 폴더 찾아보기 아이콘 이나 데스크탑의 “Current Directory를 이용하여 현재 디렉토리를 파일이 저장된 디렉토리로 변경한 후 실행한다. 1장 매트랩 시작하기
cd(‘g:\temp) or cd g:\temp 디렉토리 변경 (2/2) • 명령어 창에서 cd 명령어를 이용하여 디렉토리를 바꿀 수도 있다. 1장 매트랩 시작하기
MATLAB Search path • MATLAB은 ‘search path’를 이용하여 M 파일과 다른 매트랩 관련 파일들을 찾는다. MATLAB과 함께 공급되는 파일들은 기본적으로 search path에 포함되어 있다. 원하는 디렉토리를 path에 추가하려면, File→Set Path메뉴를 선택하여, Set Path Browser를 실행시키고 ‘Add Folder’를 이용하여 폴더를 선택한다. 반드시 Save를 해야 path가 저장된다. 1장 매트랩 시작하기
MATLAB 응용 예제 1.1 • 다음 식에 x= /5 를 대입하여 양변을 계산함으로써 삼각 항등식이 성립함을 보여라: 1장 매트랩 시작하기
두 삼각형 ΔC1C2C3 와 ΔC1C3C4 의 모든 변의 길이가 알려져 있으므로, 코사인 법칙으로부터 각 1 , 2를 계산할 수 있다 : • 각 1 , 2로부터 3를 알 수 있으므로 ΔC1C2C4 로부터 코사인 법칙을 이용하여 변 C2C4 를 구할 수 있다 : MATLAB 응용 예제 1.2 (1/2) • 두 원의 접점에서 두 원은 서로 접선 관계를 갖는다. 중심 C2와 C4사이의 거리를 구하라. 네 원의 반지름은 R1=16, R2=6.5, R3=12, R4=9.5 mm이다. 1장 매트랩 시작하기