42
MATLAB MATLAB MATLAB 개요와 개요와 응용 응용 1 1장 장 MATLAB MATLAB 시작하기 시작하기 0 5 10 15 20 25 0 10 20 30 -10 -5 0 5 10

9-7수치해석(조교수업)[1] [호환 모드]isdl.cau.ac.kr/education.data/numerical.analysis/prac1.pdf · 2010-10-12 · MATLAB HCH 1장매트랩시작하기 3/55 MATLAB의데스크탑창

  • Upload
    ngomien

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

MATLAB

MATLABMATLAB 개요와개요와 응용응용

11장장 MATLAB MATLAB 시작하기시작하기

05

1015

2025

0

10

20

30-10

-5

0

5

10

MATLAB HCH

1장 매트랩 시작하기 2/55

MATLAB MATLAB 시작하기시작하기

vv 이이 장의장의 내용내용

uu MATLABMATLAB의의 여러여러 창창(window)(window)들의들의 특성과특성과 목적목적 기술기술

uu 스칼라의스칼라의 산술연산산술연산 및및 기본기본 수학함수의수학함수의 사용사용..uu 스칼라스칼라 변수들변수들((할당할당 연산자연산자))의의 정의정의 및및 변수들의변수들의 사용사용 방법방법

uu 스크립트스크립트(script)(script) 파일에파일에 대한대한 소개와소개와 간단한간단한 MATLABMATLAB 프로그램의프로그램의 작성작성,,저장저장 및및 실행실행

vv MATLABMATLAB의의 특징특징

uu InterpreterInterpreter 방식의방식의 언어언어ll CompilerCompiler 방식의방식의 언어언어(( C,C, Pascal,Pascal, FortranFortran 등등))

uu 수학계산수학계산 및및 가시화가시화(visualization)(visualization)에에 매우매우 편리함편리함

uu 선형대수선형대수,, 데이터데이터 분석분석,, 신호처리신호처리,, 수치적분수치적분 등등 많은많은 과학계산용과학계산용 내장함내장함

수를수를 제공함제공함

uu 사용자에사용자에 의한의한 함수함수 작성이작성이 편리편리

uu 배우기배우기 쉽고쉽고 사용이사용이 편하다편하다..uu 다양한다양한 분야의분야의 광범위한광범위한 ToolboxToolbox를를 제공제공

MATLAB HCH

1장 매트랩 시작하기 3/55

MATLABMATLAB의의 데스크탑데스크탑 창창

vv MATLABMATLAB을을 실행하면실행하면,, 데스크탑데스크탑 창이창이 열리며열리며,, 기본기본 화면에는화면에는 CommandCommand Window,Window,CurrentCurrent DirectoryDirectory Window,Window, CommandCommand HistoryHistory WindowWindow 등등 세세 개의개의 작은작은 창이창이 포포

함되어함되어 있다있다..vv 창의창의 왼쪽왼쪽 하단부에하단부에 있는있는 StartStart 버튼을버튼을 이용하여이용하여 MATLABMATLAB의의 여러여러 도구와도구와 기능에기능에

접근할접근할 수수 있다있다..

MATLAB HCH

1장 매트랩 시작하기 4/55

MATLABMATLAB의의 데스크탑데스크탑 창창

vv 명령어명령어 창창(Command(Command Window)Window)uu MATLABMATLAB을을 실행시키면실행시키면 나타나는나타나는 메인메인 창창..uu DesktopDesktop 메뉴메뉴→→DesktopDesktop LayoutLayout 메뉴에서메뉴에서 명령어명령어 창의창의 모양을모양을 선택함선택함 ..

“Command“Command WindowWindow Only”Only”를를 선택하면선택하면,, 명령어명령어 창창 하나만하나만 보임보임..

Default desktop layoutDefault desktop layout

Command Window OnlyCommand Window Only

MATLAB HCH

1장 매트랩 시작하기 5/55

MATLABMATLAB의의 여러여러 창창

Editor WindowEditor Window프로그램프로그램 작성작성 및및편집편집

그림창그림창그래프그래프 명령어가명령어가 실행되면실행되면자동자동 생성됨생성됨

ToolbarToolbar

Workspace WindowWorkspace Window사용된사용된 변수들에변수들에 대한대한정보정보 제공제공

Command History WindowCommand History Window명령어명령어 창에서창에서 입력된입력된 명령어들이명령어들이 기록기록되어되어 있음있음

MATLAB HCH

1장 매트랩 시작하기 6/55

MATLAB Help WindowsMATLAB Help Windows

MATLAB HCH

1장 매트랩 시작하기 7/55

창의창의 분리분리(undock)(undock)와와 재결합재결합(dock)(dock)

dockdock

undockundock

MATLAB HCH

1장 매트랩 시작하기 8/55

명령어명령어 창에서의창에서의 작업작업

vv 명령어명령어 창은창은 MATLABMATLAB의의 메인메인

창창으로으로 명령어의명령어의 실행실행,, 사용자사용자

가가 작성한작성한 프로그램의프로그램의 실행실행,, 다다

른른 창창 열기열기,, 소프트웨어의소프트웨어의 관리관리

등에등에 사용된다사용된다..명령어명령어 입력을입력을 위해서는위해서는 커서커서 ‘‘|’|’ 가가

프롬프트프롬프트 ‘‘>>>> ’’ 바로바로 뒤에뒤에 놓여야놓여야 함함

vv 명령어명령어 입력을입력을 위해서는위해서는 커서커서 || 가가 프롬프트프롬프트 >>>> 바로바로 뒤에뒤에 놓여야놓여야 한다한다..vv 명령어를명령어를 표시하고표시하고 EnterEnter 키를키를 누르면누르면,, 명령어가명령어가 실행된다실행된다.. 항상항상 직전에직전에 입력입력

한한 명령어만명령어만 실행되며실행되며,, 전에전에 실행된실행된 다른다른 것것들은들은 변동이변동이 없다없다..vv 명령어명령어 창에서창에서 커서를커서를 윗줄로윗줄로 옮겨서옮겨서 이전이전 명령어를명령어를 수정하여수정하여 다시다시 실행시키실행시키

는는 것은것은 불가능하다불가능하다..

MATLAB HCH

1장 매트랩 시작하기 9/55

명령어명령어 창창(Command Window)(Command Window)에서의에서의 작업작업

vv 명령어와명령어와 명령어명령어 사이에사이에 콤마콤마(,)(,)를를 넣넣

어어 여러여러 명령어를명령어를 한한 줄에줄에 표시할표시할 수수

있으며있으며,, EnterEnter 키를키를 누르면누르면 왼쪽에서왼쪽에서

오른쪽오른쪽 순서대로순서대로 명령어가명령어가 수행된다수행된다..vv 명령어명령어 창에서창에서 커서를커서를 윗줄로윗줄로 옮겨서옮겨서

이전이전 명령어를명령어를 수정하여수정하여 다시다시 실행시실행시

키는키는 것은것은 불가능하다불가능하다..

vv 위쪽위쪽 방향키방향키 ↑↑를를 누를누를 때마다때마다 이전에이전에 입력했던입력했던 명령어명령어가가 역순으로역순으로 프롬프프롬프

트트 >>>> 다음다음에에 나타난나타난다다.. 명령어가명령어가 >>>> 다음에다음에 나타나면나타나면,, 명령어를명령어를 수정하거나수정하거나

그대로그대로 실행시킬실행시킬 수수 있다있다.. 아래쪽아래쪽 방향키방향키 ↓↓는는 위쪽위쪽 방향키와방향키와 반대의반대의 순서대로순서대로

이전이전 명령어들을명령어들을 불러낼불러낼 수수 있다있다..vv 명령어가명령어가 너무너무 길어길어 한한 줄에줄에 쓸쓸 수수 없는없는 경우경우,, 마침표마침표 세세 개개 ......을을 찍고찍고 EnterEnter 키키

를를 누르면누르면 다음다음 줄에서줄에서 이어이어서서 쓸쓸 수수 있다있다((총총 40964096 글자까지글자까지))

MATLAB HCH

1장 매트랩 시작하기 10/55

세미콜론세미콜론(;)(;)과과 % % 표시표시, clc , clc 명령어명령어

vv 명령어명령어 창에창에 명령어를명령어를 표시하고표시하고 EnterEnter 키를키를 누르면누르면,, 명령어가명령어가 실행실행되어되어 출력출력이이

명령명령어어 창에창에 표시표시되는데되는데,, 명령어명령어 끝에끝에 세미콜세미콜론론((;;))을을 붙이면붙이면 출력출력이이 표시되지표시되지

않는다않는다..uu 세미콜세미콜론론은은 결과의결과의 양이양이 상당히상당히 많거나많거나 결과결과를를 이미이미 알고알고 있을있을 때때 유용하다유용하다..uu 여러여러 명령어를명령어를 한한 줄에줄에 쓸쓸 때때 명령어와명령어와 명령어명령어 사이에사이에 콤마콤마 대신대신 세미콜세미콜론론을을 쓰면쓰면

출력출력이이 화면에화면에 표시되지표시되지 않는다않는다..vv 기호기호 %%를를 명령어명령어 줄줄 제일제일 앞에앞에 쓰면쓰면 이이 줄은줄은 주석문주석문(comment)(comment)으로으로 지정되지정되어어

EnterEnter 키를키를 눌눌러도러도 실행이실행이 되지되지 않는다않는다.. 같은같은 줄에서줄에서 명령어명령어 다음에다음에 %% 기호와기호와

텍스트를텍스트를 같이같이 쓰게쓰게 되면되면,, 주석문은주석문은 명령어의명령어의 수행에수행에 전혀전혀 영향을영향을 주주지지 않는다않는다..uu 일반적으로일반적으로 명령어명령어 창에서창에서 주석문을주석문을 붙일붙일 필요는필요는 없으나없으나,, 프로그램에서는프로그램에서는 기술기술

할할 사항을사항을 추가하거나추가하거나 프로그램프로그램 설명을설명을 위해위해 종종종종 주석문을주석문을 사용한다사용한다..vv clcclc 명령어는명령어는 명령어명령어 창에서창에서 입력한입력한 명령어들과명령어들과 결과결과 출력물들을출력물들을 지워서지워서 명령명령

어어 창창을을 깨끗이깨끗이 만든만든다다..uu clcclc 명령어로명령어로 이전에이전에 수행된수행된 어떠한어떠한 것도것도 변하지는변하지는 않않으며으며,, 이전에이전에 정의된정의된 변수들변수들

도도 존재하며존재하며 재사용이재사용이 가능하다가능하다.. 방향키방향키 ↑↑를를 이용하여이용하여 이전이전 명령어명령어를를 불러낼불러낼 수수

도도 있다있다..

MATLAB HCH

1장 매트랩 시작하기 11/55

명령어기록명령어기록 창창(Command History Window)(Command History Window)

vv CommandCommand HistoryHistory 창은창은 명령명령 창에서창에서 그그 동안동안 입력했던입력했던 명령어들의명령어들의 목록을목록을 보보

여주며여주며,, 현재현재 명령어명령어 창에서창에서 입력한입력한 명령어명령어 뿐만뿐만 아니라아니라 이전에이전에 입력했던입력했던 명령명령

어들도어들도 포함된다포함된다..vv CommandCommand HistoryHistory 창에창에 있는있는 명령어들은명령어들은 명령어명령어 창에서창에서 다시다시 사용할사용할 수수 있다있다..

uu MATLABMATLAB은은 이전에이전에 입력한입력한 명령어들을명령어들을 버퍼버퍼에에 저장하므로저장하므로 과거과거 입력기록들을입력기록들을

CommandCommand HistoryHistory 창에서창에서 볼볼 수수 있다있다..uu CommandCommand HistoryHistory 창에서창에서 원하는원하는 명령어를명령어를 마우스로마우스로 명령어명령어 창으로창으로 끌고끌고 올올 수수

있으며있으며(dragging),(dragging), 필요하면필요하면 ←← 또는또는 →→ 화살표를화살표를 이용하여이용하여 원하는원하는 위치에서위치에서 명명

령어를령어를 추가하거나추가하거나 수정하고수정하고 EnterEnter 키를키를 눌러눌러 실행시킬실행시킬 수수 있다있다..uu 명령어기록명령어기록 창에서창에서 원하는원하는 명령어를명령어를 마우스로마우스로 더블더블 클릭클릭(double(double click)click)하면하면 해당해당

명령어가명령어가 바로바로 실행된다실행된다..uu 명령어기록명령어기록 창에창에 있는있는 명령어들은명령어들은 원하는원하는 명령어들을명령어들을 선택한선택한 후후 키보드의키보드의 deletedelete

키키를를 누르거나누르거나 EditEdit 메뉴에서메뉴에서 DeleteDelete SelectionSelection을을 선택하여선택하여 삭제할삭제할 수수 있다있다.. 또는또는

삭제하기삭제하기 위해위해 선택한선택한 명령어들명령어들 위에서위에서 마우스마우스 우측우측 버튼을버튼을 눌러눌러 나온나온 팝업메뉴팝업메뉴

에서에서 DeleteDelete SelectionSelection을을 선택해도선택해도 된다된다..

MATLAB HCH

1장 매트랩 시작하기 12/55

스칼라스칼라 산술산술 연산연산

vv MATLABMATLAB에서에서 사용하는사용하는 산술연산자들의산술연산자들의 기호기호 ::

연산연산 기호기호 예예

덧셈덧셈 ++ 5+35+3

뺄셈뺄셈 -- 55--33

곱셈곱셈 ** 5*35*3

오른쪽오른쪽 나눗셈나눗셈 // 5/35/3

왼쪽왼쪽 나눗셈나눗셈 \\((\\)) 55\\3(=3/5)3(=3/5)

지수연산지수연산 ^̂ 5^3(55^3(53 3 을을 의미함의미함))

주주) ) 한글한글WindowsWindows에서는에서는 ‘‘\\’’가가‘‘\\’(’(키보드의키보드의 \\))로로 표시됨표시됨

§§ 왼쪽왼쪽 나눗셈을나눗셈을 제외한제외한 나머지나머지 기호들은기호들은 대부분의대부분의 계산기에서와계산기에서와 같다같다.. 스칼스칼

라의라의 경우경우,, 왼쪽왼쪽 나눗셈나눗셈(left(left division)division)은은 오른쪽오른쪽 나눗셈나눗셈(right(right division)division)의의 역역

수이지만수이지만,, 배열에배열에 대한대한 연산연산((33장장 참조참조))에에 대해서는대해서는 왼쪽왼쪽 나눗셈이나눗셈이 주로주로 사용사용

된다된다..

MATLAB HCH

1장 매트랩 시작하기 13/55

스칼라스칼라 산술산술 연산에서의연산에서의 우선우선 순위순위

vv MATLABMATLAB에서의에서의 산술산술 연산연산 우선우선 순위순위

§§ 여러여러 연산이연산이 포함된포함된 식에서식에서,, 우선우선 순위가순위가 더더 높은높은 연산이연산이 더더 낮은낮은 연산보다연산보다

먼저먼저 수행된다수행된다..§§ 둘둘 이상의이상의 연산이연산이 같은같은 우선순위를우선순위를 가지면가지면,, 왼쪽에서왼쪽에서 오른쪽으로오른쪽으로 식이식이 수수

행된다행된다..§§ 계산계산 순서를순서를 바꾸기바꾸기 위해위해 괄호를괄호를 사용할사용할 수수 있다있다..

우선순위우선순위 수학수학 연산연산

11순위순위 괄호괄호 ※※ 괄호가괄호가 중첩된중첩된 경우경우,, 가장가장 안쪽의안쪽의 괄호부터괄호부터 수행됨수행됨

22순위순위 거듭제곱거듭제곱

33순위순위 곱하기곱하기,, 나누기나누기((우선순위가우선순위가 동등함동등함))

44순위순위 더하기와더하기와 빼기빼기

MATLAB HCH

1장 매트랩 시작하기 14/55

산술연산산술연산 예예 (1/3)(1/3)

>>>> 44**5050++33**100100++1010^̂22--400400//22ansans ==

400400>>>> 22^̂55/(/(22^̂55--11))ansans ==

11..03230323>>>> 22*(sqrt(*(sqrt(55))--11)/(sqrt()/(sqrt(55)+)+11)^)^22--11ansans ==

--00..76397639>>>> 1010*acos(*acos(--11))ansans ==

3131..41594159>>>> xx==22;; yy==66++xx,, xx==yy++77yy ==

88xx ==

1515>>>> exp(exp(33));; %% ee33

>>>> loglog1010((1010^̂55));; %% loglog1010 101055

연산연산 순서순서::수학의수학의 일반일반 규칙과규칙과 동일동일

1. 1. 괄호괄호 먼저먼저 계산한다계산한다

2. 2. 지수지수 계산계산

3. 3. 곱하기곱하기, , 나누기는나누기는 왼쪽에서왼쪽에서 우측우측

방향으로방향으로

4. 4. 더하기더하기, , 빼기는빼기는 왼쪽에서왼쪽에서 우측우측

방향으로방향으로

;;((세미콜른세미콜른)) 계산결과계산결과 표시표시 억제억제

,(,(콤마콤마)) 한한 줄에줄에 여러여러 명령어를명령어를

입력하면서입력하면서 계산결과계산결과 표시표시

%% 프로그램을프로그램을 설명할설명할 때때 사용하며사용하며, ,

명령과는명령과는 무관함무관함

MATLAB HCH

1장 매트랩 시작하기 15/55

vv MATLABMATLAB에서에서 산술연산은산술연산은 명령어명령어 창에창에 수식을수식을 입력입력한한 후후 EnterEnter 키를키를 누르누르

면면 계산이계산이 되며되며,, 그그다음다음 두두 줄에줄에 걸쳐걸쳐 ‘‘ans=ans=’’과과 결과결과((답답))가가 표시된다표시된다..

>>>> 77++88//22 %% 88//22가가 먼저먼저 수행됨수행됨ansans ==

1111>>>> ((77++88)/)/22ansans ==

77..50005000>>>> 44++55//33++22 %% 55//33이이 먼저먼저 수행됨수행됨ansans ==

77..66676667>>>> 55^̂33//22 %% 5533이이 먼저먼저 수행됨수행됨ansans ==

6262..50005000>>>> 2727^(^(11//33)+)+3232^̂00..22 %% 2727((11//33))++323200..22

ansans ==55

>>>> 2727^̂11//33++3232^̂00..22 %% ((272711)/)/33 ++ 323200..22

ansans ==1111

>>>> 00..78547854--((00..78547854)^)^33/(/(11**22**33)+)+00..785785^̂55//……((11**22**33**44**55))--((00..785785)^)^77/(/(11**22**33**44**55**66**77))ansans ==

00..70717071>>>> 77//22ansans ==

33..50005000>>>> 77\\22 %% \\대신대신 \\가가 표시됨표시됨((한글윈도한글윈도))ansans ==

00..28572857>>>> ansansansans ==

00..28572857

산술연산산술연산 예예 (2/3)(2/3)

MATLAB HCH

1장 매트랩 시작하기 16/55

산술연산산술연산 예예 (3/3)(3/3)

2´43 + 5(2´4)3 + 5(2´4)3/591/2

91/2

MATLAB HCH

1장 매트랩 시작하기 17/55

← ← 연산자연산자 사이에사이에 공백이공백이 있어도있어도 상관없다상관없다!!

>>>> 22**44^̂33 ++ 55 %% 22´́4433 ++ 55ansans ==

133133>>>> ((22**44)^)^33 ++ 55 %% ((22´́44))33 ++ 55ansans ==

517517>>>> ((22** 44)) ^̂33 // 55 %% ((22´́44))33//55ansans ==

102102..44>>>> 99^(^(11//22)) %% 9911//22

ansans ==33

>>>> 99^̂11//22 %% 9911//22ansans ==

44..50005000

vv 오류를오류를 피하거나피하거나 식을식을 읽기읽기 쉽도록쉽도록 괄호를괄호를 적절하게적절하게 사용하는사용하는 것이것이 좋다좋다..

산술연산산술연산 예예 (3/3)(3/3)

2´43 + 5(2´4)3 + 5(2´4)3/591/2

91/2

MATLAB HCH

1장 매트랩 시작하기 18/55

출력출력 형식형식 (1/3)(1/3)

vv MATLABMATLAB의의 기본기본(default)(default) 출력출력 형식은형식은 소수점소수점 이하이하 네네 자리를자리를 가진가진 고정소수고정소수점점(short(short라고라고 부름부름))이다이다..

>>>> 44++55//33++22ansans ==

77..66676667

vv 기본기본 출력형식은출력형식은 formatformat 명령어로명령어로 바꿀바꿀 수수 있으며있으며,, formatformat 명령어가명령어가 실행된실행된 이이후의후의 모든모든 출력은출력은 규정된규정된 형식으로형식으로 표시된다표시된다.. 자세한자세한 형식은형식은 명령어명령어 창에서창에서helphelp formatformat을을 입력하면입력하면 알알 수수 있다있다..

vv 수를수를 화면에화면에 표시하는표시하는 형식은형식은 MATLABMATLAB이이 수를수를 계산하고계산하고 저장하는저장하는 방법에는방법에는영향을영향을 미치지미치지 않는다않는다..

명령어명령어 설명설명 예예

formatformat shortshort00..001001<<수수≤≤10001000인인 수를수를 소수점소수점 이하이하 네네 자리수의자리수의고정소수점고정소수점으로으로 표시함표시함.. 그그 외의외의 범위의범위의 수는수는shortshort ee 형식으로형식으로 표시함표시함..

>>>> 290290//77ansans ==

4141..42864286

formatformat longlong00..001001<<수수≤≤10001000인인 수를수를 소수점소수점 이하이하 1515자리의자리의 고고정소수점정소수점으로으로 표시함표시함.. 그그 외외 범위의범위의 수는수는 longlong ee의의형식으로형식으로 표시함표시함..

>>>> 290290//77ansans ==

4141..4285714285714342857142857143

MATLAB HCH

1장 매트랩 시작하기 19/55

vv 변수는변수는 한한 개의개의 문자문자,, 또는또는 여러여러 문자들문자들((숫자숫자 포함포함))의의 조합으로조합으로 이루어진이루어진 이름이름으로으로 수치수치 값이값이 할당된다할당된다..

vv 변수는변수는 데이터를데이터를 저장할저장할 메모리메모리 장소의장소의 이름을이름을 나타내며나타내며,, 새로운새로운 변수가변수가 정의정의되면되면 MATLABMATLAB은은 배정받은배정받은 변수의변수의 값이값이 저장될저장될 적절한적절한 메모리메모리 공간을공간을 할당할당한다한다.. 변수가변수가 사용되면사용되면 변수에변수에 저장된저장된 데이터가데이터가 사용된다사용된다..

vv 변수에변수에 새로운새로운 값이값이 할당되면할당되면,, 메모리메모리 위치의위치의 내용이내용이 갱신된다갱신된다..vv 할당할당 연산자연산자(assignment(assignment operator)operator) ‘=’‘=’는는 우측우측 값을값을 좌측좌측 변수에변수에 할당한다할당한다..

스칼라스칼라 변수와변수와 할당할당 연산자연산자 (1/3)(1/3)

variable_namevariable_name = = 수치수치 값값 또는또는 계산계산 가능한가능한 식식

§§ 할당할당 연산자연산자 ==의의 좌변은좌변은 한한 개의개의 변수이름만을변수이름만을 포함할포함할 수수 있다있다.. 우변이우변이 수식인수식인 경우경우

수치수치 값이값이 할당된할당된 변수들은변수들은 수식에수식에 포함될포함될 수수 있다있다..§§ EnterEnter 키를키를 누르면누르면 우변의우변의 수치수치 값이값이 변수에변수에 할당되며할당되며,, MATLABMATLAB은은 다음다음 두두 줄에줄에 걸걸

쳐쳐 변수와변수와 할당된할당된 값을값을 화면에화면에 표시한다표시한다..

>>>> x=x=1515 %% 수수 1515가가 변수변수 xx에에 할당됨할당됨

xx ==1155

>>>> x=x=33*x*x--1212 %% 새로운새로운 값이값이 xx에에 할당됨할당됨

xx ==3333

MATLAB HCH

1장 매트랩 시작하기 20/55

§§ 명령어명령어 끝에끝에 세미콜론세미콜론을을 붙이붙이고고 EnterEnter 키를키를 누르면누르면,, 실행결과가실행결과가 화면에화면에 출력되지출력되지 않않는다는다.. 물론물론 변수는변수는 메모리에메모리에 저장저장된다된다..

§§ 이미이미 생성된생성된 변수변수의의 이름을이름을 입력하입력하면면 변수와변수와 값값이이 화면에화면에 출력된출력된다다..§§ 같은같은 줄에줄에 여러여러 할당문을할당문을 쓰려면쓰려면,, 할당문할당문 사이에사이에 콤마콤마 또는또는 세미콜론세미콜론을을 삽입하며삽입하며,,

EnterEnter 키를키를 누르면누르면 왼쪽에서왼쪽에서 오른쪽으로오른쪽으로 할당문이할당문이 실행되실행되어어 결과가결과가 화면에화면에 출력된출력된다다.. 콤마콤마 대신대신 세미콜론을세미콜론을 쓰면쓰면 변수는변수는 화면에화면에 출력되지출력되지 않는다않는다..

할당할당 연산자연산자 (2/3)(2/3)

>>>> a=a=1212 %% 수수 1212를를 aa에에 할당함할당함

aa ==1212

>>>> B=B=44 %% 수수 44를를 BB에에 할당함할당함

BB ==44

>>>> C=(aC=(a--B)+B)+4040--a/B*a/B*1010CC ==

1818

우변의우변의 수식수식 값을값을CC에에 할당함할당함

>>>> a=a=1212;;>>>> B=B=44;;>>>> C=(aC=(a--B)+B)+4040--a/B*a/B*1010;;>>>> CCCC ==

1818

>>>> a=a=1212,, B=B=44;; C=(aC=(a--B)+B)+4040--a/B*a/B*1010aa ==

1212CC ==

1818

MATLAB HCH

1장 매트랩 시작하기 21/55

§§ 이미이미 생성된생성된 변수는변수는 새로운새로운 값을값을 다시다시 할당할당 받을받을 수수도도 있다있다. . §§ 일단일단 변수가변수가 정의되고정의되고 나면나면, , 변수는변수는 함수의함수의 인자인자(argument)(argument)로로 사용될사용될 수수 있다있다. .

>>>> ABB=ABB=7272;;>>>> ABB=ABB=99;;>>>> ABBABB %% 변수의변수의 현재현재 값이값이 출력됨출력됨

ABBABB ==99

>>>> x=x=00..7575;;>>>> E=sin(x)^E=sin(x)^22+cos(x)^+cos(x)^22EE ==

11

할당할당 연산자연산자 (3/3)(3/3)

MATLAB HCH

1장 매트랩 시작하기 22/55

vv 변수변수 이름은이름은 문자로문자로 시작시작해야해야 하며하며,, 길이는길이는 MATLABMATLAB 77의의 경우경우 6363개개((66..00 버버

전까지는전까지는 3131개개))까지까지 가능하다가능하다.. 예예)) var,var, temp_temp_11,, temp_temp_22,, xx,, yy,, ave_ave_11vv 이름에이름에 문자문자,, 숫자숫자,, ‘‘ __ ’’ 등을등을 포함포함할할 수수 있으며있으며,, 마침표마침표,, 콤마콤마,, 세미콜론세미콜론 등은등은

포함할포함할 수수 없다없다.. 이름이름 사이에사이에 공백을공백을 둘둘 수수 없으며없으며,, 필요하면필요하면 ‘‘_’_’를를 이용한다이용한다..vv 변수는변수는 대대··소문자를소문자를 구별구별한다한다.. 즉즉 다음다음 변수들은변수들은 모두모두 다른다른 변수들이다변수들이다::

예예)) AA,AA, Aa,Aa, aA,aA, aaaavv 내장함수내장함수 이름이름((예예:: cos,cos, sin,sin, exp,exp, sqrt,sqrt, ……))은은 사용하지사용하지 않도록않도록 한다한다.. 함수함수 이이

름을름을 변수로변수로 정의하게정의하게 되면되면,, 해당해당 세션에서는세션에서는 함수를함수를 사용할사용할 수수 없다없다..vv MATLABMATLAB에에 의해의해 예약된예약된 1717개의개의 키워드도키워드도 변수변수 이름으로이름으로 사용할사용할 수수 없다없다..

명령어명령어 창에서창에서 키워드를키워드를 입력하면입력하면,, 키워드는키워드는 파란파란 색으로색으로 표시표시된다된다.. 만일만일 사사

용자가용자가 키워드를키워드를 변수변수 이름으로이름으로 사용하려고사용하려고 하면하면 에러에러 메시지가메시지가 표시된다표시된다..명령어명령어 iskeywordiskeyword를를 입력하면입력하면 화면에화면에 키워드들이키워드들이 출력된다출력된다..예예)) break,break, case,case, catch,catch, continue,continue, else,else, elseif,elseif, end,end, for,for, function,function, global,global, if,if,

otherwise,otherwise, persistent,persistent, return,return, switch,switch, try,try, whilewhile

변수변수(variable) (variable) 이름에이름에 대한대한 규칙규칙

MATLAB HCH

1장 매트랩 시작하기 23/55

반드시반드시 공백이공백이 들어들어가야가야 함함

vv 명령이명령이 길어서길어서 한한 줄에줄에 입력할입력할 수수 없는없는 경우경우,, 마침표마침표((..)) 세세 개를개를 찍고찍고 EnterEnter 키키를를 눌러도눌러도 커서의커서의 위치만위치만 다음다음 줄로줄로 바뀔바뀔 뿐뿐 명령은명령은 실행되지실행되지 않는다않는다.. 연산자연산자는는 분리할분리할 수수 있으나있으나,, 변수명은변수명은 분리해서분리해서 쓸쓸 수수 없다없다..>>>> Class_Class_11==2020;; Class_Class_22==1515;; Class_Class_33==1414;; Class_Class_44==1717;; Total_Number=Total_Number=240240;;>>>> aveave == (Class_(Class_11 ++ Class_Class_22 ++ Class_Class_33 ++ Class_Class_44)) ……

// Total_NumberTotal_Number ** 100100ansans == 2727..55

>>>> ave=(Class_ave=(Class_11+Class_+Class_22+Class_+Class_33+Class_+Class_44)/Total_)/Total_ ……?????? ave=(Class_ave=(Class_11+Class_+Class_22+Class_+Class_33+Class_+Class_44)/Total)/Total ……ErrorError:: TheThe inputinput charactercharacter isis notnot validvalid inin MATLABMATLAB statementsstatements ororexpressionsexpressions..

>>>> a=a=44;; b=b=33;; sum=a+bsum=a+bsumsum == 77

>>>> a=a=77;; sumsumsumsum == 77

변수변수

aa의의 값이값이 바뀌어도바뀌어도 ExcelExcel과과 달리달리 sumsum의의 값은값은 변동이변동이 없다없다..

MATLAB HCH

1장 매트랩 시작하기 24/55

변수변수 관리에관리에 유용한유용한 명령어들명령어들

vv 명령어명령어 창창(Command(Command Window)Window)에서에서 다음다음 명령어를명령어를 실행함으로써실행함으로써 생성생성

된된 변수들을변수들을 삭제하거나삭제하거나 변수들에변수들에 대한대한 정보들을정보들을 얻을얻을 수수 있다있다..

명명 명령어명령어령령 설설 명명설설 명명clearclear 메모리에서메모리에서 모든모든 변수들을변수들을 제거한다제거한다..

clearclear xx yy zz 메모리에서메모리에서 변수변수 x,x, y,y, zz 만을만을 제거한다제거한다..

whowho 현재현재 메모리에메모리에 있는있는 변수들의변수들의 목록을목록을 화면에화면에 출력한다출력한다..

whoswhos 현재현재 메모리에메모리에 있는있는 변수들의변수들의 이름과이름과 크기크기,, 바이트와바이트와 클래스클래스

에에 대한대한 정보를정보를 화면에화면에 출력한다출력한다..

MATLAB HCH

1장 매트랩 시작하기 25/55

명령창에서명령창에서 사용하는사용하는 일반일반 명령어명령어

vv clcclc 명령창의명령창의 내용을내용을 모두모두 지운다지운다

((ClClearsears thethe CCommandommand window)window)

vv exist(‘exist(‘varvar’’)) ‘‘varvar’’ 이름의이름의 파일이나파일이나 변수가변수가 있는지있는지 확인한다확인한다

vv quitquit MATLABMATLAB을을 끝낸다끝낸다

vv helpwinhelpwin 도움말도움말 창을창을 연다연다

vv helphelp 명령어명령어 명령창에서명령창에서 ‘‘명령어명령어’’에에 간단한간단한 설명을설명을 보여준다보여준다

vv lookforlookfor 단어단어 단어와단어와 관련된관련된 명령어를명령어를 찾아준다찾아준다

((명령어를명령어를 잘잘 모를모를 때때 사용함사용함))

vv cdcd 디렉토리디렉토리 위치를위치를 변경하거나변경하거나 현재현재 위치를위치를 알려준다알려준다

MATLAB HCH

1장 매트랩 시작하기 26/55

vv MATLABMATLAB을을 포함한포함한 프로그래밍프로그래밍 언어에서의언어에서의 ‘‘==’’ 부호는부호는 수학에서의수학에서의

‘‘같다같다’’라는라는 의미보다는의미보다는 할당할당(assignment)(assignment)이나이나 대체대체(replacement)(replacement)의의 의의

미를미를 갖는다갖는다..예예)) >>>> xx==55 %% xx라는라는 변수를변수를 만들어만들어 55라는라는 값을값을 할당할당((저장저장))한다한다..

>>>> xx == xx ++ 1010 %% 현재현재 xx의의 값에값에 1010을을 더한더한 결과를결과를 다시다시 xx에에 저장하여저장하여

기존의기존의 값을값을 대체한다대체한다..

‘=’‘=’ 부호의부호의 의미가의미가 수학과수학과 달리달리 양변이양변이 같다는같다는 의미가의미가 아니므로아니므로 좌변에는좌변에는

반드시반드시 변수가변수가 와야와야 하며하며,, 상수나상수나 식이식이 오게오게 되면되면 다음과다음과 같이같이 에러에러 메시지메시지

를를 얻게얻게 된다된다 ::>>>> xx**22==66?????? x*x*22==66

||ErrorError:: TheThe expressionexpression toto thethe leftleft ofof thethe equalsequals signsign isis notnot aa validvalid targettarget forfor ananassignmentassignment..

프로그래밍에서의프로그래밍에서의 ‘‘==’’의의 의미의미

MATLAB HCH

1장 매트랩 시작하기 27/55

vv MATLABMATLAB을을 이용하여이용하여 다음다음 계산을계산을 수행하라수행하라..

연습연습

12064

427 (3)

5(2)sin 3 (2)

5426 (1) 3

523

-++´

MATLAB HCH

1장 매트랩 시작하기 28/55

MATLAB MATLAB 응용응용 예제예제 1.11.1

vv 다음다음 식에식에 x=x= pp//55 를를 대입하여대입하여 양변을양변을 계산함으로써계산함으로써 삼각삼각 항등식이항등식이 성립함성립함을을 보여라보여라::

2 tan sincos2 2 tanx x x

x+

=

MATLAB HCH

1장 매트랩 시작하기 29/55

MATLAB MATLAB 응용응용 예제예제 1.11.1

2 tan sincos2 2 tanx x x

x+

=

MATLAB HCH

2장 배열과 행렬 30/53

연 도 1984 1986 1988 1990 1992 1994 1996

인구(백만) 127 130 136 145 158 178 211

P (2,5, 6)

x

z

yuu 어떤어떤 수들의수들의 집합도집합도 벡터로벡터로 나타낼나타낼 수수 있다있다..

예예) ) 어느어느 도시의도시의 연도별연도별 인구수에인구수에 대한대한 표에서표에서

연도와연도와 인구수를인구수를 벡터로벡터로 표시할표시할 수수 있다있다..>> year = [1984 1986 1988 1990 1992 1994 1996]>> year = [1984 1986 1988 1990 1992 1994 1996]>> pop = [127 130 136 145 158 178 211];>> pop = [127 130 136 145 158 178 211];

vv 배열은배열은 MATLABMATLAB이이 데이터를데이터를 저장하고저장하고 다루기다루기 위해위해 사용하는사용하는 기본적기본적

인인 형태로서형태로서,, 행행(row)(row)이나이나 열열(column),(column), 또는또는 행과행과 열로열로 정렬된정렬된 수들의수들의

나열이다나열이다..vv 11차원차원 배열배열((벡터벡터))로로 나타낼나타낼 수수 있는있는 예예 ::

uu 33차원차원 공간의공간의 한한 점점 PP의의 좌표가좌표가 ((22,, 55,, 66))일일 때때 이이 좌표를좌표를

배열배열 [[22 55 66]]또는또는 [[22,, 55,, 66]]으로으로 나타낼나타낼 수수 있다있다..

11차원차원 배열의배열의 생성생성 (1/2)(1/2)

MATLAB HCH

2장 배열과 행렬 31/53

11차원차원 배열의배열의 생성생성 (2/2)(2/2)

vv 배열의배열의 생성생성 방법방법

uu꺾은꺾은 괄호괄호 [[ ]] 안에안에 배열의배열의 원소들을원소들을 직접직접 입력함입력함

uu외부외부 데이터데이터 파일로부터파일로부터 행렬을행렬을 읽어읽어 들임들임

uuMATLABMATLAB 명령어나명령어나 자신이자신이 만든만든 mm 파일을파일을 이용이용

하여하여 행렬을행렬을 생성시킴생성시킴vv 벡터의벡터의 각각 원소는원소는 수수,, 또는또는 미리미리 정의된정의된 변수들변수들,, 함수들이함수들이 포함된포함된 수학식수학식 등등

이이 될될 수수 있다있다..vv 알려진알려진 수수 집합을집합을 행벡터행벡터(row(row vector)vector)로로 만들기만들기

uu 꺾은꺾은 괄호괄호 [[ ]] 안에안에 알려진알려진 원소들을원소들을 기입하며기입하며,, 원소와원소와 원소는원소는 공백이나공백이나 콤마콤마

(,)(,)로로 구분한다구분한다..

variable_namevariable_name == [[벡터벡터 원소들의원소들의 나열나열]]

>>>> tt == [[55,, 77,, 22,, 44 1010 2929]] %% 공백이나공백이나 콤마로콤마로 원소를원소를 구분한다구분한다

>>>> tt == [[00,, 00..44*pi,*pi, 00..88*pi,*pi, 11..22*pi,*pi, 11..55*pi,*pi, 22*pi]*pi];; %% 수식표현도수식표현도 가능하다가능하다

>>>> tt == [[00 00..44 00..88 11..22 11..55 22]*pi]*pi %% 위의위의 결과와결과와 같다같다

MATLAB HCH

2장 배열과 행렬 32/53

열벡터열벡터(Column vector)(Column vector)의의 생성생성

vv 열벡터열벡터(Column(Column vector)vector)를를 생성하는생성하는 세세 가지가지 방법방법

uu꺾은꺾은 괄호괄호 속에서속에서 원소원소 뒤에뒤에 세미콜론세미콜론((;;))을을 입력하입력하

면면 줄이줄이 바뀐다바뀐다..uu각각 원소원소 뒤에서뒤에서 EnterEnter 키를키를 눌러눌러 바뀐바뀐 줄에줄에 새로운새로운

원소를원소를 입력한다입력한다..uu행벡터행벡터 입력을입력을 마친마친 후후 꺾은꺾은 괄호괄호 뒤에뒤에 따옴표따옴표(('' ))

를를 입력하여입력하여 행벡터를행벡터를 전치전치(transpose)(transpose)시킨다시킨다..

MATLAB HCH

2장 배열과 행렬 33/53

일정한일정한 간격으로간격으로 커지는커지는 행벡터의행벡터의 생성생성

vv 일정한일정한 간격으로간격으로 커지는커지는 원소들을원소들을 가진가진 벡터는벡터는 콜론콜론((::))을을 사용하여사용하여 생생

성한다성한다..

variable_namevariable_name == [m[m :: qq :: n]n] oror variable_namevariable_name == mm :: qq :: nn

oror variable_namevariable_name == (m(m :: qq :: n)n)

uu mm은은 첫번째첫번째 원소이며원소이며,, m+qm+q,, m+m+22q,q, …… 와와 같이같이 qq씩씩 커지면서커지면서 원소가원소가

생성되고생성되고,, 최종최종 원소는원소는 nn을을 초과할초과할 수수 없다없다..

uu mm--nn이이 qq의의 정수배이면정수배이면 최종원소는최종원소는 nn이지만이지만,, 그렇지그렇지 않으면않으면 nn보다보다 작작

은은 값이값이 된다된다.. nn이이 생략되면생략되면 원소는원소는 11씩씩 커진다커진다.. qq가가 음수인음수인 경우경우 mm은은 반드시반드시 nn보다보다 커야커야 한다한다..

>>>> xx == [[11::22::88]] >>>>x=(x=(00::00..55::11)*pi)*pi

x=x=11 33 55 77 x=x=00 11..57085708

MATLAB HCH

2장 배열과 행렬 34/53

원소의원소의 개수를개수를 지정하여지정하여 행벡터행벡터 생성하기생성하기

vv 시작원소시작원소 xixi와와 최종원소최종원소 xfxf,, 원소의원소의 개수개수 nn이이 정해져정해져 있을있을 때때,, 일정한일정한 간격을간격을

가진가진 벡터의벡터의 생성은생성은 linspacelinspace 명령을명령을 이용한다이용한다..

variable_namevariable_name == linspacelinspace(xi,(xi, xfxf,, n)n)

uu콜론에콜론에 의한의한 벡터벡터 생성과생성과 달리달리 최종원소의최종원소의 값은값은

항상항상 xfxf 이다이다..uu원소는원소는 ((xfxf –– xixi)/()/(nn--11))만큼씩만큼씩 증가한다증가한다..uu원소원소 개수개수 nn을을 생략하면생략하면,, 기본적으로기본적으로 100100개의개의 원원

소를소를 생성한다생성한다..

>>>> xx == linspacelinspace((22,, 1414,, 66)) %% 22부터부터 1414까지까지 66개의개의

원소를원소를 생성생성

xx == 22..00000000 44..40004000 66..80008000 99..20002000 1111..60006000

MATLAB HCH

2장 배열과 행렬 35/53

log10100

( = 0 )log10101

( = 1 )log10102

( = 2 )

11 11

log10103

( = 3 )

11>> t = logspace(0, 3, 4)t =t =

1 10 100 10001 10 100 1000

>> x= logspace(1, 5, 3)x =x =

10 1000 10000010 1000 100000>> y=logspace(1, 2, 4)y =y =

10.0000 21.5443 46.4159 100.000010.0000 21.5443 46.4159 100.0000

logspacelogspace 명령어에명령어에 의한의한 벡터벡터 생성생성

vv 로그적으로로그적으로 같은같은 간격을간격을 가진가진 행벡터행벡터(row(row vector)vector)를를 생성한다생성한다..

yy == logspace(a,logspace(a, b,b, n)n)

uu aa와와 bb 사이가사이가 아니라아니라 1010aa와와 1010bb 사이에사이에 nn개의개의 로그적으로로그적으로 같은같은 간격간격

의의 행벡터를행벡터를 생성한다생성한다..uu nn이이 생략되면생략되면 5050개의개의 원소를원소를 생성한다생성한다..

MATLAB HCH

2장 배열과 행렬 36/53

세미콜론세미콜론

úúú

û

ù

êêê

ë

é=

351287316

1042A

vv 22차원차원 배열은배열은 행렬행렬(matrix)(matrix)로도로도 불리며불리며 다수의다수의 행과행과 열을열을 갖는다갖는다.. 세세

미콜론미콜론((;;))이나이나 엔터엔터(Enter)(Enter) 키는키는 새로운새로운 행행(row)(row)을을 만드는만드는 역할을역할을 하하

므로므로 원소들원소들 끝에끝에 세미콜론을세미콜론을 입력하거나입력하거나 엔터엔터 키를키를 누름으로써누름으로써 원원

하는하는 행렬을행렬을 만들만들 수수 있다있다..

22차원차원 배열배열((행렬행렬))의의 생성생성

>>>> A=[A=[22 44 1010;; 1616 33 77;; 88 1212 3535]]AA ==

22 44 10101616 33 77

88 1212 3535

의 입력

>>>> A=[A=[22 44 10101616 33 7788 1212 3535]]AA ==

22 44 10101616 33 7788 1212 3535

Enter Enter 키키

MATLAB HCH

2장 배열과 행렬 37/53

>>>> A=[A=[22 44 1010;;linspace(linspace(88,, --22,, 33)])]AA ==

22 44 101088 33 --22

>>>> A=[A=[22 44 1010;; 88:: --55:: --22 ]]AA ==

22 44 101088 33 --22

>>>> A=[AA=[A;; 1010 2020 3030]]AA ==

22 44 101088 33 --221010 2020 3030

vv 행렬행렬 원소는원소는 숫자숫자 뿐만뿐만 아니라아니라 계산이계산이 가능한가능한 수식수식,, 변수도변수도 가능하다가능하다.. 또또

linspacelinspace나나 콜론콜론((::))을을 이용하여이용하여 원소를원소를 자동으로자동으로 생성하는생성하는 것도것도 가능하다가능하다..

행렬행렬 생성의생성의 다양한다양한 방법방법 (1/2)(1/2)

>>>> x=x=44;; y=y=22;; z=z=88;; %% 세세 변수의변수의 정의정의

>>>> A=[xA=[x yy zz;; sin(x/z)sin(x/z) x^x^22 x+y]x+y]AA ==

44..00000000 22..00000000 88..0000000000..47944794 1616..00000000 66..00000000

>>>> A=[A=[11::22::1111;; 00::55::2525;;linspace(linspace(1010,, 6060,, 66));;6767 22 4343 6868 44 1313]]A=A=

11 33 55 77 99 111100 55 1010 1515 2020 25251010 2020 3030 4040 5050 60606767 22 4343 6868 44 1313

MATLAB HCH

2장 배열과 행렬 38/53

행렬행렬 생성의생성의 다양한다양한 방법방법 (2/2)(2/2)

>>>> rr11=[=[22,, 44,, 1010]];; rr22=[=[1616,, 33,, 77]];;>>>> A=[rA=[r11;; rr22]]AA == 22 44 1010

1616 33 77>>>> A=[[A=[[22,, 44,, 1010]];; [[1616,, 33,, 77]]]] %% A=[A=[22,, 44,, 1010;; 1616,, 33,, 77]]과과 같다같다..AA ==

22 44 10101616 33 77

>>>> v=[rv=[r11 rr22]]vv == 22 44 1010 1616 33 77>>>> cd=cd=66;; h=h=44;;>>>> Mat=[Mat=[33,, cd*h,cd*h, cos(pi/cos(pi/33)) ;; h^h^22,, sqrt(h*h/cd),sqrt(h*h/cd), 1414]]Mat=Mat=

33..00000000 2424..00000000 00..500050001616..00000000 11..63306330 1414..00000000

MATLAB HCH

2장 배열과 행렬 39/53

행렬행렬 명령어명령어 –– zeros, ones, eye zeros, ones, eye

vv zeros(m,zeros(m, n),n), ones(m,ones(m, n),n), eye(n)eye(n) 명령들은명령들은 특수한특수한 원소들을원소들을 갖는갖는 행렬을행렬을 만드만드

는는 데데 사용된다사용된다..

uuzeros(m,zeros(m, n)n) :: 원소가원소가 모두모두 00인인 mm ´́ nn 크기의크기의 행렬행렬

uuones(m,ones(m, n)n) :: 원소가원소가 모두모두 11인인 mm ´́ nn 크기의크기의 행렬행렬

uueye(n)eye(n) :: 대각선대각선 원소만원소만 11이고이고 나머지나머지 원소들은원소들은 모모

두두 00인인 nn ´́ nn 의의 행렬행렬>>>> ZZ == zeros(zeros(22 :: 33))ZZ ==

00 00 0000 00 00

>>>> OO == ones(ones(22,, 22))OO ==

11 1111 11

>>>> II == eye(eye(33))II ==

11 00 0000 11 0000 00 11

>>>> BB == ones(size(Z))ones(size(Z))BB ==

11 11 1111 11 11

MATLAB HCH

2장 배열과 행렬 40/53

MATLAB MATLAB 변수에변수에 대한대한 유의사항유의사항

vv MATLABMATLAB의의 모든모든 변수들은변수들은 배열이다배열이다.. 스칼라는스칼라는 원소가원소가 하나인하나인 배열이고배열이고,, 벡벡

터는터는 원소들의원소들의 행이나행이나 열이열이 하나인하나인 배열이며배열이며,, 행렬은행렬은 원소들이원소들이 행과행과 열로열로 되되

어어 있는있는 배열이다배열이다..

vv 변수변수((스칼라스칼라,, 벡터벡터,, 행렬행렬))는는 변수가변수가 할당될할당될 때의때의 입력에입력에 의해의해 정의된다정의된다.. 원소원소

를를 할당하기할당하기 전에전에 배열의배열의 크기를크기를 정의할정의할 필요는필요는 없다없다..

vv 변수가변수가 스칼라나스칼라나 벡터벡터,, 또는또는 행렬로서행렬로서 존재하면존재하면,, 이이 변수의변수의 크기나크기나 유형은유형은 마마

음대로음대로 변경할변경할 수수 있다있다..

uu 스칼라스칼라 ⇒⇒ 벡터벡터,, 또는또는 행렬행렬

uu 벡터벡터 ⇒⇒ 스칼라스칼라,, 다른다른 크기의크기의 벡터벡터,, 또는또는 행렬행렬

uu 행렬의행렬의 크기를크기를 바꾸거나바꾸거나 벡터나벡터나 스칼라로스칼라로 축소시킬축소시킬 수도수도 있다있다..

MATLAB HCH

2장 배열과 행렬 41/53

>>>> A=[A=[11 22 33;; 1010 2020 3030]]AA ==

11 22 331010 2020 3030

>>>> B=AB=A’’B=B=

11 101022 202033 3030

전치전치(transpose) (transpose) 연산자연산자

>>>> v=[v=[1010;; 2020;; 3030]];;>>>> vtvt == vv’’vtvt ==

1010 2020 3030>>>> x=[x=[1010 2020 3030]];; xtxt == xx’’xtxt ==

101020203030

vv 행벡터를행벡터를 열벡터로열벡터로,, 열벡터를열벡터를 행벡터로행벡터로 변환하거나변환하거나,, 행렬의행렬의 행과행과 열을열을

바꾸는바꾸는 전치전치 연산은연산은 벡터나벡터나 행렬행렬 뒤에뒤에 따옴표따옴표((''))를를 붙이면붙이면 된다된다..

MATLAB HCH

2장 배열과 행렬 42/53

이미이미 AA가가 22´́22 행렬로행렬로정의되어정의되어 있으므로있으므로 첫첫번째번째 행의행의 원소를원소를 11´́33의의 rowrow22로로 대체하려고대체하려고하므로하므로 크기가크기가 다르다다르다는는 에러에러 발생발생..

행렬행렬 정의시정의시 주의할주의할 점점

vv 스칼라스칼라 변수의변수의 값을값을 정의하는정의하는 경우에는경우에는 이전에이전에 변수가변수가 미리미리 정의되어정의되어 있었있었

더라도더라도 새로운새로운 값으로값으로 대체가대체가 되므로되므로 문제가문제가 없지만없지만,, 배열배열 변수의변수의 경우에는경우에는

다음의다음의 예와예와 같이같이 예기치예기치 못한못한 문제가문제가 생길생길 수수 있으므로있으므로 이미이미 생성되어생성되어 있는있는

배열변수인지배열변수인지 확인하거나확인하거나 clearclear 명령을명령을 이용해서이용해서 이전의이전의 모든모든 변수를변수를 삭제삭제

하는하는 것이것이 좋다좋다..

>>>> A=[A=[2020,, 3030;; 4040,, 5050]];;…………>>>> rowrow11==1111::1414;;>>>> A(A(11,, ::)) =row=row11SubscriptedSubscripted assignmentassignment dimensiondimension mismatchmismatch..

>>>> clearclear AA %% 작업공간에작업공간에 있는있는 AA를를 삭제한다삭제한다..>>>> A(A(11,, ::)) =row=row11AA == 1111 1212 1313 1414