MATLAB 입문(실습을통한)
이 책은 10개의 장들로 구성되어 있다. 각 장은 여러분에게 프로그래밍과 MATLAB 사용 기법을 향상시키기 위한 중요한 면을 알려주고 있다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
제 1장은 MATLAB 통합개발 환경(IDE)을 다루고 있다. MATLAB IDE는 프로그램의 작성을 단순하게 하여 주고 코드의 가독성을 향상시키며 코드의 구문오류를 강조하고 프로그램 속도를 증진시키기 위한 제언들을 제시하며 MATLAB 파일들을 조직하는 데에 도움이 되고 또한 변수값들을 살펴볼 수 있도록 고안된 많은 고급 속성들을 지니고 있다. 이러한 중요한 특성들을 처음부터 익히는 것은 여러분이 MATLAB 프로그래밍을 보다 효율적으로 더욱 신속하게 이해하는 데에 도움을 준다.
제 2장은 이전에 어떠한 프로그래밍 경험도 없는 독자들을 위해 쓰여졌다. 이 부분에서 다루고 있는 일부 주제들은 C, Java, 그리고 FORTRAN과 같은 다른 프로그램 언어들에게도 공통적인 것들로서 변수들의 이름 붙이기, 수학적 표현들을 MATLAB 표현들로 전환하기, 실수들을 근사하기 등을 다루고 있다. 약간의 사전 프로그래밍 경험을 지닌 독자들은 이러한 처음 몇몇 주제들을 그냥 지나칠 수 있다. 이 장의 나머지 주제들은 복소수에 대한 연산조작등과 같이 MATLAB에 독특한 것들로서 이전에 다른 언어를 이용한 프로그래밍 경험이 있더라도 그냥 지나쳐서는 안 된다.
제 3장은 MATLAB에서의 벡터에 대한 주제를 다루고 있다. MATLAB이라는 이름은 Matrix Laboratory의 축약에서 비롯된 것이다. 행렬의 처리는 MATLAB 프로그램 언어의 핵심이다. 행렬들은 1D, 2D, 3D 등으로 나눌 수 있다. 1차원 (1D) 행렬은 벡터라고 부른다. 이 부분에서 여러분은 벡터를 생성하고 도시하는 것을 익히게 될 것이다. 나아가 벡터 원소들에의 접근과 벡터에 대한 관계, 논리 및 산술 연산들이 보기들을 통하여 모두 설명될 것이다.
제 4장은 그 구성에 있어서 이 책의 세 번째 부분과 유사하지만 벡터가 아닌 배열들을 다루고 있다. 네 번째 부분은 배열에서의 원소들의 접근, 배열들에 대한 관계, 논리 및 산술 연산들과 배열들의 도시에 대하여 설명하고 있다.
제 5장은 구조화 프로그래밍 기법들을 소개하고 있는데 이 기법은 여러분의 코드를 스크립트 파일과 다수의 함수들로 나누는 과정을 의미한다. 함수들의 사용은 코드의 가독성과 재사용 가능성, 그리고 유지 관리능력을 향상시킨다. 이 부분은 또한 프로그래밍에서의 함수의 목적과 MATLAB 함수의 작성방법, 그리고 함수에서의 변수들의 범위를 다루고 있다.
제 6장은 MATLAB에서의 조건문들을 다루고 있다. 이 부분은 MATLAB의 두 조건문들인 if와 switch를 소개하고 있다. 이들 두 조건문들의 구문과 사용을 설명하여 주는 다수의 보기들이 여기에 제시되어 있다. 이 부분은 또한 재귀함수들의 원리를 설명하고 있다.
제 7장은 for와 while 루프문에 대하여 논의하고 있다. 이 부분은 또한 두 루프문들의 구문을 소개하고 있다. 나아가 프로그래밍 초보자들을 위하여 루프의 사용 뒤에 숨어있는 개념을 설명하기 위한 다수의 보기들이 주어져 있다. 이 부분은 두 개의 프로그래밍 프로젝트들로 마무리된다. 여기에서 여러분은 Conway의 Game of Life를 수행하기 위한 MATLAB 프로그램을 작성하게 될 것이다. 이를 위해서는 루프문과 조건문의 광범위한 사용이 요구된다.
제 8장은 MATLAB IDE의 중요한 두 가지 툴인 디버깅과 프로파일링을 소개하고 있다. 디버깅 툴은 프로그래머가 코드의 수행시간 버그를 수정하는 데에 도움을 준다. 디버깅 툴의 보기로서 분기점, 조건 분기점, 스? 인, 스? 아웃, 그리고 계속수행 등을 들 수 있다. 프로파일링 툴은 프로그래머가 코드의 수행시간을 재고 긴 수행시간을 필요로 하는 코드 부분을 결정하며 이 부분들을 최적화하는 데에 도움을 준다.
제 9장은 프로그래밍에서 구조체의 사용을 논의하고 있다. 구조체는 프로그래밍 작업을 간단하게 하여 주며 프로그램의 가독성을 높여준다. MATLAB에서 구조체의 사용에 따른 장점들과 개념을 설명하기 위해 다수의 보기들이 제시되어 있다. 이 부분은 구조체를 이용한 여우와 토끼 게임을 프로그램하는 것으로 마무리된다.
제 10장은 MATLAB Symbolic Math 툴박스를 이용하여 미적분 문제를 해결하는 것을 다루고 있다. 예를 들면 대수 방정식의 풀이, 미분, 적분, 미분방정식, 그리고 라플라스 및 푸리에 변환들이 다루어진다. Symbolic Math 툴박스는 미적분 문제에 대한 적확한 해(방정식)를 제시하여 준다. 이는 대개 수치 데이터를 생성하는 미적분 문제에 대한 수치해와는 다른 것이다.
목차
목차
Lesson 1.1 MATLAB 통합개발 환경의 기초
1.1.1 MATLAB 통합개발 환경 1
1.1.2 스칼라 변수의 생성 4
1.1.3 벡터 변수의 생성 6
1.1.4 배열 변수의 생성 8
Lesson 1.2 MATLAB 스크립트 파일
1.2.1 스크립트 파일의 생성 11
1.2.2 스크립트 파일에 이름 붙이기 12
1.2.3 스크립트 파일의 저장 15
1.2.4 스크립트 파일의 실행 16
1.2.5 MATLAB 코드의 가독성(Readability) 17
1.2.6 MATLAB? 코드에 코멘트 부여하기 19
Lesson 1.3 MATLAB 편집기 ? 셀 모드
1.3.1 셀 모드의 활성화 21
1.3.2 프로그램을 셀들로 구분하기 22
1.3.3 셀에서 코드의 수행 23
일부 연습문제에 대한 풀이 25
2. MATLAB 스칼라변수
Lesson 2.1 MATLAB 스칼라 변수의 생성과 이름 붙이기
2.1.1 MATLAB 특수변수 27
2.1.1.1 MATLAB 특수변수의 이용 27
2.1.1.2 MATLAB 특수변수 값의 변경 29
2.1.2 사용자 정의 변수 30
2.1.2.1 사용자 정의 변수들의 이름붙이기 30
2.1.2.2 MATLAB? 은 대소문자에 민감 31
2.1.2.3 사용자 정의 변수 제거하기 32
Lesson 2.2 수의 근사와 이산수학 연산
2.2.1 숫자 근사하기 33
2.2.1.1 round 함수 33
2.2.1.2 fix 함수 34
2.2.1.3 ceil 함수 35
2.2.1.4 floor 함수 35
2.2.2 이산수학 연산 36
2.2.2.1 숫자의 인수화 36
2.2.2.2 최대공약수 36
2.2.2.3 최소공배수 37
Lesson 2.3 MATLAB 스칼라 변수에 대한 수학적 표현
2.3.1 변수의 생성 37
2.3.2 수학적 연산의 우선순위 39
2.3.3 수학적 표현에서 MATLAB 표현으로 39
2.3.4 MATLAB 표현에서 수학적 표현으로 45
2.3.5 연습문제 49
Lesson 2.4 MATLAB 스칼라 변수에 대한 관계 및 논리 연산
2.4.1 logical클래스 51
2.4.2 관계 연산자 51
2.4.3 논리 연산자 53
2.4.3.1 AND "&" 논리 연산자 54
2.4.3.2 OR "|" 논리 연산자 55
2.4.3.3 NOT "~" 논리 연산자 57
2.4.4 논리 및 관계 연산자들의 조합 57
Lesson 2.5 복소 스칼라 변수
2.5.1 서론 59
2.5.2 복소 스칼라 변수의 생성 59
2.5.3 복소수의 덧셈 61
2.5.4 복소수의 뺄셈 61
2.5.5 복소수의 곱셈 62
2.5.6 복소수의 나눗셈 62
2.5.7 켤레 복소수 63
2.5.8 복소수의 크기와 위상각 63
2.5.9 직교좌표에서의 복소수의 그래프 64
2.5.10 극좌표에서의 복소수의 그래프 65
일부 연습문제에 대한 풀이 66
3. 벡터
Lesson 3.1 벡터의 생성
3.1.1 서론 70
3.1.2 방법 1 : 수동적인 벡터의 생성 70
3.1.2.1 수동적인 행벡터의 생성 70
3.1.2.2 수동적인 열벡터의 생성 71
3.1.2.3 전치연산 72
3.1.2.4 벡터에서 원소 수의 결정 73
3.1.2.5 벡터를 열벡터로 전환 73
3.1.3 방법 2 : 선형방법을 이용한 벡터의 생성 74
3.1.4 방법 3 : 선형간격 방법을 이용한 벡터의 생성 76
3.1.5 방법 4 : 로그간격 방법을 이용한 벡터의 생성 77
3.1.6 빈 벡터 78
3.1.7 벡터들의 연결 78
3.1.8 복소수 벡터의 생성 79
3.1.8.1 방법 1: 수동적인 복소수 벡터의 생성 79
3.1.8.1.1 수동적인 복소수 행벡터의 생성 79
3.1.8.1.2 수동적인 복소수 열벡터의 생성 80
3.1.8.1.3 전치연산 81
3.1.8.2 방법 2: 선형방법을 이용한 복소수 벡터의 생성 82
3.1.8.3 방법 3: 선형간격 방법을 이용한 복소수 벡터의 생성 8
Lesson 3.2 벡터에 대한 관계 및 논리연산
3.2.1 벡터에 대한 관계 연산 84
3.2.2 벡터에 대한 논리 연산 86
3.2.2.1 AND "&" Logical Operator 86
3.2.2.2 OR "|" 논리 연산자 87
3.2.2.3 NOT "~" 논리 연산자 87
3.2.3 논리와 관계 연산자들의 조합 88
Lesson 3.3 벡터 원소의 접근
3.3.1 인덱스를 이용한 벡터의 개별 원소들에의 접근 89
3.3.2 인덱스를 이용한 벡터의 원소들 그룹에의 접근 90
3.3.3 값을 이용한 벡터의 원소들에의 접근 92
3.3.4 관계 및 논리 연산자를 이용한 벡터의 원소들에의 접근 94
Lesson 3.4 벡터에 대한 산술연산
3.4.1 벡터의 덧셈과 뺄셈 96
3.4.1.1 벡터의 덧셈 96
3.4.1.2 벡터의 뺄셈 97
3.4.1.3 숫자를 벡터에 더하기 97
3.4.1.4 벡터로부터 숫자를 빼기 98
3.4.2 벡터에 대한 행렬 및 원소끼리의 산술연산 99
3.4.3 벡터의 곱셈 99
3.4.3.1 벡터에 대한 원소끼리의 곱셈 100
3.4.3.2 벡터에 대한 행렬 곱셈 100
3.4.3.2.1 수학적 배경 100
3.4.3.2.2 벡터에 대한 행렬 곱셈 101
3.4.3.3 벡터에 숫자 곱하기 102
3.4.4 벡터 나눗셈 104
3.4.4.1 벡터에 대한 원소끼리의 나눗셈 104
3.4.4.2 벡터에 대한 행렬 나눗셈 105
3.4.4.3 벡터를 숫자로 나누기 105
Lesson 3.5 벡터의 그래프
3.5.1 벡터의 그래프 106
3.5.2 그래프 해상도의 변경 107
3.5.3 그래프 색상의 변경 108
3.5.4 함수를 점들로 나타내기 109
3.5.5 x와 y축 라벨붙이기 109
3.5.6 그림에 타이틀 추가하기 110
3.5.7 그리이스 문자의 사용 111
3.5.8 그림에 격자 넣기 112
3.5.9 그림에 텍스트 추가하기 112
3.5.10 폰트 크기의 변경 113
3.5.11 라인 너비의 변경 114
3.5.12 다중 그래프 114
3.5.13 그래프에 범례넣기 115
3.5.14 다중 부그래프 117
3.5.15 다중 그림 118
3.5.16 지수를 이용한 벡터의 그래프 119
일부 연습문제에 대한 풀이 120
4. 배열
Lesson 4.1 배열의 생성
4.1.1 서론 126
4.1.2 배열의 수동적 생성 126
4.1.2.1 배열의 수동적 생성: 행에 따른 생성 126
4.1.2.2 배열의 수동적 생성: 열에 따른 생성 127
4.1.3 repmat 함수를 이용한 배열의 생성 128
4.1.4 배열에 대한 전치 130
4.1.5 reshape함수를 이용한 배열 차원의 변경 130
4.1.6 배열의 크기 133
4.1.7 배열을 열벡터로 전환 134
4.1.8 배열끼리의 연결 134
4.1.9 복소수 배열의 생성 136 4.1.9.1 복소수 배열의 수동적 생성 136
4.1.9.2 복소수 배열의 자동적 생성 136
Lesson 4.2 배열에 대한 관계 및 논리연산
4.2.1 배열에 대한 관계 연산자 137
4.2.2 배열에 대한 논리 연산자 139
4.2.2.1 AND "&" 논리 연산자 139
4.2.2.2 OR "|" 논리 연산자 140
4.2.2.3 NOT "~" 논리 연산자 141
4.2.3 배열들에 대한 논리 및 관계 연산들의 조합 141
Lesson 4.3 배열 원소의 접근
4.3.1 인덱스를 이용한 배열의 개별 원소에의 접근 143
4.3.1.1 행과 열에 따른 인덱스 설정 방법 143
4.3.1.2 선형 인덱스 설정 방법 145
4.3.2 배열의 행의 접근 146
4.3.3 배열의 열의 접근 147
4.3.4 인덱스를 이용한 배열의 원소 그룹에의 접근 148
4.3.5 값을 이용한 배열 원소들에의 접근 152
4.3.6 관계 및 논리 연산자를 이용한 배열 원소들에의 접근 153
Lesson 4.4 배열에 대한 산술연산
4.4.1 배열 덧셈과 뺄셈 156
4.4.1.1 배열 덧셈 156
4.4.1.2 배열 뺄셈 157
4.4.1.3 숫자를 배열에 더하기 157
4.4.1.4 배열로부터 숫자를 빼기 158
4.4.2 행렬 및 원소끼리의 산술연산 158
4.4.3 배열 곱셈 159
4.4.3.1 배열에 대한 원소끼리의 곱셈 159
4.4.3.2 배열에 대한 행렬 곱셈 160
4.4.3.2.1 수학적 배경 160
4.4.3.2.2 배열에 대한 행렬 곱셈 160
4.4.3.2.3 배열에 숫자 곱하기 161
4.4.4 배열 나눗셈 162
4.4.4.1 배열에 대한 원소끼리의 나눗셈
XII
162
4.4.4.2 배열에 대한 행렬 나눗셈 163
Lesson 4.5 배열의 그래프
4.5.1 배열의 3D 그래프에 대한 수학적 배경 164
4.5.2 mesh 함수를 이용한 배열의 3D 그래프 작성 166
4.5.3 3D 그래프의 해상도 향상 168
4.5.4 surf 함수를 이용한 배열의 3D 그래프 작성 168
4.5.5 행과 열 인덱스를 이용한 배열의 3D 그래프 작성 170
4.5.6 배열의 2D 그래프에 대한 수학적 배경 171
4.5.7 imagesc 함수를 이용한 배열의 2D 그래프 작성 172
일부 연습문제에 대한 풀이 174
5. 함수
Lesson 5.1 함수 입문
5.1.1 함수란 무엇인가? 175
5.1.2 함수의 목적 176
5.1.2.1 코드 가독성의 향상 176
5.1.2.2 코드 재사용성의 향상 178
5.1.2.3 코드의 수정 179
5.1.3 MATLAB 함수 호출하기 180
Lesson 5.2 함수의 생성
5.2.1 MATLAB 함수의 생성 181
5.2.2 MATLAB 함수의 이름붙이기 182
5.2.3 MATLAB 함수의 저장 184
5.2.4 MATLAB 함수의 호출 185
5.2.4.1 명령 창에서의 MATLAB 함수의 호출 185
5.2.4.2 스크립트 파일에서의 MATLAB 함수의 호출 186
5.2.4.3 다른 함수로부터 MATLAB 함수의 호출 187
5.2.5 두 값들을 반환하는 MATLAB 함수 188
Lesson 5.3 함수에서 MATLAB? 변수의 범위
5.3.1 MATLAB 함수에서 변수의 범위 189
일부 연습문제에 대한 풀이 194
6. 조건문
Lesson 6.1 if 문의 구성
6.1.1 두 변수값들의 교환 197
6.1.2 if 문 199
6.1.3 MATLAB 함수의 가독성 향상시키기 203
6.1.4 if 문의 보기 204
Lesson 6.2 if slae 문의 구성
6.2.1 if slae 문 207
Lesson 6.3 재귀함수
6.3.1 재귀함수 216
XIII
Lesson 6.4 if elsief else 문의 구성
6.4.1 if elsief else 문 223
Lesson 6.5 switch case 문의 구성
6.5.1 switch case 문 226
일부 연습문제에 대한 풀이 230
7. MATLAB의 루프 문
Lesson 7.1 for 루프 문의 구성
7.1.1 루프 문의 필요성 235
7.1.2 for 루프 문의 구성 237
7.1.2.1 for 루프 입문 237
7.1.2.2 스칼라에 대한 for 루프 240
7.1.2.3 벡터에 대한 for 루프 246
7.1.3 중첩된 for 루프 문의 구성 250
7.1.3.1 중첩된 for 루프 입문 250
7.1.3.2 배열에 대한 중첩된 for 루프 251
Lesson 7.2 결합된 for와 if문의 구성
7.2.1 결합된 for와 if문의 구성 254
7.2.2 continue 키워드 257
7.2.3 break 키워드 258
Lesson 7.3 while 루프 문의 구성
7.3.1 while 루프 문 입문 265
7.3.2 while 루프 문의 보기 268
7.3.3 재귀함수 269
일부 연습문제에 대한 풀이 271
- 프로젝트 1: Conway의 생명게임(Game of Life) 274
- 프로젝트 2: Conway의 생명게임(Game of Life) ? 말려진 가장자리 280
8. 디버깅, 프로파일링, 그리고 코드 들여쓰기
Lesson 8.1 MATLAB 디버깅
8.1.1 구문 오류와 수행시간 오류 283
8.1.1.1 구문오류 284
8.1.1.2 수행시간 오류 284
8.1.2 MATLAB 코드의 디버깅 286
8.1.2.1 분기점의 설정 286
8.1.2.2 프로그램을 단계별로 살펴보기 288
Lesson 8.2 MATLAB 함수의 디버깅
8.2.1 MATLAB 함수의 디버깅 293
8.2.1.1 함수를 호출하는 스크립트 파일의 생성 293
8.2.1.2 함수의 생성 294
8.2.1.3 함수의 디버깅
XIV
294
8.2.1.3.1 스? 인 툴 296
8.2.1.3.2 스? 아웃 툴 298
Lesson 8.3 MATLAB 디버깅 툴
8.3.1 서론 299
8.3.2 조건 분기점 디버깅 툴 299
8.3.3 Go Until 커서 디버깅 툴 301
8.3.4 Continue 디버깅 툴 302
Lesson 8.4 MATLAB 프로파일러 툴
8.4.1 MATLAB 프로파일러 304
8.4.1.1 MATLAB 프로파일러 띄우기 305
8.4.2 MATLAB 코드 시간측정 307
8.4.3 컴퓨터의 벤치마킹 307
Lesson 8.5 MATLAB 코드 들여쓰기
8.5.1 MATLAB 코드 들여쓰기 309
8.5.2 스마트 코드 들여쓰기 314
일부 연습문제에 대한 풀이 317
9. 구조체
Lesson 9.1 MATLAB 구조체
9.1.1 구조체 클래스의 필요성 319
9.1.2 구조체를 위한 함수 321
Lesson 9.2 구조체들의 벡터
9.2.1 구조체들의 벡터 325
일부 연습문제에 대한 풀이 328
- 프로젝트: 여우와 토끼 게임 329
10. MATLAB 미적분
Lesson 10.1 심볼수학 툴박스(Symbolic Math Toolbox) 입문
10.1.1 심볼수학 툴박스(Symbolic Math Toolbox) 335
10.1.2 sym 변수의 생성 336
10.1.3 심볼 표현의 구성 337
10.1.4 심볼 표현의 값을 구하기 338
10.1.5 MATLAB 에서 ezplot 함수를 이용한 심볼 표현의 그래프 작성 338
Lesson 10.2 대수방정식
10.2.1 solve 함수를 이용한 대수방정식의 풀이 340
10.2.2 factor 함수를 이용한 대수식의 인수분해 341
10.2.3 expand 함수를 이용한 대수식의 전개 342
10.2.4 simplify 함수를 이용한 대수식의 단순화 342
Lesson 10.3 미분과 적분
10.3.1 diff 함수를 이용한 수학적 표현의 미분 343
10.3.2 int 함수를 이용한 수학적 표현의 적분 344
10.3.2.1 int 함수를 이용한 수학적 표현의 부정적분 344
10.3.2.2 int 함수를 이용한 수학적 표현의 정적분 345
Lesson 10.4 미분방정식
10.4.1 dsolve 함수를 이용한 1차 미분방정식의 풀이 347
10.4.2 dsolve 함수를 이용한 2차 미분방정식의 풀이 349
Lesson 10.5 라플라스(Laplace) 및 푸리에(Fourier) 변환
10.5.1 라플라스(Laplace) 변환 351
10.5.2 역 라플라스(Inverse Laplace) 변환 352
10.5.3 푸리에(Fourier) 변환 352
10.5.4 역 푸리에(Inverse Fourier) 변환 353
일부 연습문제에 대한 풀이 353
찾아보기 355
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

