서브메뉴

본문

MATLAB 활용 (프로그래밍과 문제 해결을 위한 실제적인 입문)
MATLAB 활용 (프로그래밍과 문제 해결을 위한 실제적인 입문)
저자 : Stormy Attaway
출판사 : 아진
출판년 : 2014
ISBN : 9788957613672

책소개

『MATLAB 활용(3판)』은 MATLAB을 도구로 이용하여 기본적인 문제 풀이에 필요한 기본적인 프로그래밍 개념과 기법을 안내한다. 특히 이 책은 변수, 할당, 입력/출력, 선택, 그리고 루프문들과 같은 기본적인 프로그래밍 개념들로부터 시작하며 나머지 부분 모두에 걸쳐 문제가 제시되고 “프로그래밍 개념”과 “효율적인 방법”을 이용한 풀이가 소개되고 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책의 목적은 MATLAB을 도구로 이용하여 기본적인 문제 풀이에 필요한 기본적인 프로그래밍 개념과 기법을 가르치는 데에 있다. MATLAB은 강력한 소프트웨어 패키지로서 수학적 연산으로부터 3차원 이미지 처리에 이르는 다양한 범위의 작업들을 수행하여 주는 내장함수들을 지니고 있다. 나아가 MATLAB은 사용자가 프로그램을 스스로의 목적에 맞게 조정할 수 있도록 하여 주는 완전한 프로그래밍 구조들을 지니고 있다.

MATLAB?을 소개하고 있는 많은 책들은 두 가지 기본적인 부류로 나눌 수 있다: 일부 프로그래밍 개념들에 관한 1~2 개의 장들을 포함하여 MATLAB 내장함수들의 활용을 예시하여 주는 부류의 책들과 MATLAB의 효율적 사용을 가능하게 하여 주는 많은 내장함수들은 다루지 않고 단지 프로그래밍 구조만을 소개하는 부류의 책들이 그들이다. 단순히 내장함수만을 익히는 사람은 MATLAB을 사용할 준비는 잘 되어 있겠지만 기본적인 프로그래밍 개념들은 이해하지 못할 것이다. 그런 사람은 프로그래밍 개념들에 관한 다른 입문코스를 택하거나 다른 책들을 읽지 않고는 C++이나 Java와 같은 언어를 학습할 수 없을 것이다. 이와 반대로 프로그래밍 개념만을 (어떤 언어를 사용하였든) 먼저 익히는 사람은 문제 풀이를 위해 많은 경우 MATLAB에서는 불필요한 제어문장들을 이용하는 극히 비능률적인 코드를 작성하는 경향이 있을 것이다.

이 책은 프로그래밍과 능률적 사용을 모두 소개하는 복합적인 접근방법을 취하고 있다. 학생들의 당면문제는 나중에 프로그래밍 개념을 실제로 알 필요가 있을 것인지, 혹은 MATLAB과 같은 소프트웨어 패키지가 그들의 직무상 충분할 것인지를 예측하는 것이 거의 불가능하다는 점이다. 따라서 초급 학생들을 위한 가장 좋은 방법은 프로그래밍 개념과 능률적인 내장함수 모두를 익히게 하는 것이다. MATLAB은 사용이 쉽기 때문에 프로그래밍과 문제풀이를 교육시키는 이러한 방법을 위한 완벽한 플랫폼이 된다.

이 책에서 프로그래밍 개념은 특히 중요하기 때문에 모든 새로운 버전의 MATLAB이 지니는 시간절약 특성들을 강조하지는 않고 있다. 예를 들면 거의 모든 버전의 MATLAB에서 변수들에 대한 통계는 작업공간 창에서 바로 확인할 수 있다. 이에 대해서는 이 책에서 자세히 다루지 않고 있는데 이는 이러한 특성의 존재여부는 소프트웨어의 버전에 따라 좌우되며 이 책에서는 개념들에 대한 설명을 지향하고 있기 때문이다.
제 3판에서의 개정내용
이 책의 제 3판에서 변경된 내용은 다음과 같다:
● 각 장의 말미에 “다른 흥미로운 특성들의 탐색”이라는 새로운 절을 추가하였는데 이 절에서는 연관되는 언어구조, 함수, 그리고 도구들과 같은 독자가 더 알아보기를 원할 수도 있는 주제들을 열거하고 있다.
● 다음 내용들을 확장하였다:
■ 이미지 행렬들에서 다양한 데이터 형식들의 사용을 포함하는 이미지 처리
■ 로그 척도의 이용을 포함하는 그래프 함수들
■ 그래픽 사용자 접속기(GUI, graphical user interface)
● MATLAB R2012b 버전의 사용
● 새로운 “실습”문제들의 보완과 기존 문제들의 수정
● 각 장 말미 연습문제들의 수정과 보완 및 보다 도전적인 문제들을 추가
● 일부 내용의 재구성:
■ 벡터와 행렬에 관한 장을 별도로 분리: 이에는 벡터와 행렬에 대한 일부 함수들과 연산자들 및 벡터화 코드에 대한 준비가 포함된다.
■ 행렬곱셈을 조기에 소개(제 2장)
■ 배열 및 벡터화 코드에 따른 루프들의 사용을 비교하기 위하여 벡터화 코드를 루프를 다루는 장에서 소개
● round(rand) 대신에 randi를 사용
● logical(1)/logical(0) 대신에 true/false를 사용
● mod, sqrt, nthroot, log, log2, 그리고 log10 및 다양한 삼각함수들을 포함하는 기초 수학함수들에 대한 소개의 확장
● 이 책에서 다룬 함수들의 완전한 목록을 포함하는 새로운 부록
● 독자들이 살펴보기를 원하는 툴박스(Toolbox)들의 목록을 포함하는 새로운 부록

주요 특징들
프로그래밍 개념과 내장함수를 나란히 소개
이 책의 가장 중요하고도 독특한 특징은 프로그래밍 개념들과 MATLAB 내장함수들의 사용법을 병행하여 소개하고 있다는 점이다. 이 책은 변수, 할당, 입력/출력, 선택, 그리고 루프문들과 같은 기본적인 프로그래밍 개념들로부터 시작하며 이 책의 나머지 부분 모두에 걸쳐 문제가 제시되고 “프로그래밍 개념”과 “효율적인 방법”을 이용한 풀이가 소개되고 있다. 이는 모든 경우들에 있어서 지겨워질 때까지 소개되는 것은 아니고 개념을 얻기에 충분할 정도까지만 소개될 것이다.
[교보문고에서 제공한 정보입니다.]

목차정보

CHAPTER 1. MATLAB? 입문
1.1 MATLAB 들어가기 4
1.2 MATLAB 데스크탑 환경 5
1.3 변수와 할당문 6
1.3.1 초기화, 증가시키기, 그리고 감소시키기 8
1.3.2 변수 이름 9
1.3.3 타잎(Type) 10
1.4 수치표현 13
1.4.1 format 함수와 생략법 13
1.4.2 연산자 14
1.4.3 내장함수와 도움말 16
1.4.4 상수 19
1.4.5 랜덤(Random, 무작위) 수 20
1.5 문자와 암호화 22
1.6 관계표현 25
다른 흥미로운 특성들의 탐구 29
요 약 30
연습문제 32

CHAPTER 2. 백터와 행렬
2.1 벡터와 행렬 37
2.1.1 행벡터의 생성 38
2.1.2 열벡터의 생성 42
2.1.3 행렬변수의 생성 43
2.1.4 차원 47
2.1.5 빈 벡터 53
2.1.6 3차원 행렬 55
2.2 함수 인수로서의 벡터와 행렬 56
2.3 벡터와 행렬에 대한 스칼라 및 배열연산 60
2.4 행렬곱셉 63
2.4.1 벡터에 대한 행렬곱셈 64
2.5 논리벡터 65
2.5.1 벡터와 행렬들의 관계표현 66
2.5.2 논리 내장함수 67
2.6 응용: DIFF와 MESHGRID 함수 71
다른 흥미로운 특성들의 탐구 73
요 약 73
연 습 문 제 74

CHAPTER 3. MATLAB? 프로그래밍 입문
3.1 알고리듬 82
3.2 MATLAB 스크립트 83
3.2.1 소프트웨어의 설명 86
3.3 입력과 출력 87
3.3.1 입력함수 87
3.3.2 출력문: disp와 fprintf 90
3.4 입력과 출력이 있는 스크립트 96
3.5 간단한 그래프를 생성하고 조정하는 스크립트 97
3.5.1 plot 함수 97
3.5.2 간단한 그래프관련 함수들 101
3.6 파일 입력/출력 입문(저장과 불러오기) 105
3.6.1 데이터를 파일에 기록하기 105
3.6.2 데이터를 데이터 파일에 덧붙이기 106
3.6.3 파일로부터 읽기 107
3.7 단일값을 반환하는 사용자 정의함수 110
3.7.1 함수의 정의 111
3.7.2 함수의 호출 112
3.7.3 스크립트로부터 사용자 정의함수의 호출 115
3.7.4 복수 인수들의 전달 115
3.7.5 국부적 변수를 갖는 함수 117
3.7.6 범위(Scope)에 대한 소개 119
3.8 명령어와 함수 119
다른 흥미로운 특성들의 탐구 120
요 약 120
연 습 문 제 121

CHAPTER 4. 선택문
4.1 If 문 131
4.1.1 논리적 참 및 거짓의 표현 134
4.2 If-Else 문 136
4.3 중첩된 If-Else 문 138
4.3.1 elseif 절 140
4.4 Switch 문 144
4.5 Menu 함수 147
4.6 MATLAB의 "IS" 함수 149
다른 흥미로운 특성들의 탐구 152
요 약 152
연 습 문 제 154

CHAPTER 5. 루프문과 백터화 코드
5.1 For 루프 164
5.1.1 작용에서 반복자 변수를 사용하지 않는 for 루프 166
5.1.2 for 루프에서의 입력 166
5.1.3 합과 곱의 계산 167
5.1.4 벡터의 사전설정 168
5.1.5 for 루프의 보기: subplot 170
5.2 중첩된 For 루프 171
5.2.1 중첩된 For 루프와 If 문들의 조합 176
5.3 While 루프 179
5.3.1 While 루프에서의 다중조건 180
5.3.2 While 루프에서 파일읽기 181
5.3.3 While 루프에서의 입력 182
5.3.4 While 루프에서의 헤아림 184
5.3.5 While 루프에서 오류검사 사용자 입력 186
5.4 벡터와 행렬을 이용한 루프 189
5.4.1 벡터화 합과 곱 190
5.4.2 선택문을 수반하는 루프의 벡터화 193
5.4.3 효율적인 코드 작성요령 198
5.5 타이밍 199
다른 흥미로운 특성들의 탐구 201
요 약 202
연 습 문 제 203

CHAPTER 6. MATLAB? 프로그램
6.1 사용자 정의 함수들의 형태 215
6.1.1 하나 이상의 값을 반환하는 함수 216
6.1.2 값을 반환하지 않고 작업을 수행하는 함수 220
6.1.3 값들을 반환하는 함수와 프린트 222
6.1.4 인수를 함수에 전달하기 223
6.2 MATLAB 프로그램 구조 225
6.2.1 모듈형 프로그램 225
6.2.2 부함수 227
6.3 적용: 메뉴구동 모듈형 프로그램 230
6.4 변수의 범위 237
6.4.1 Persistent 변수(영속변수) 240
6.5 디버깅 기법 243
6.5.1 오류의 형태 243
6.5.2 추적 244
6.5.3 편집기/디버거 246
6.5.4 함수 토막(Function stub) 247
6.5.5 코드 셀(Cell)과 출판 코드 248
다른 흥미로운 특성들의 탐구 249
요 약 250
연 습 문 제 251

CHAPTER 7. 문자열의 처리
7.1 문자열 변수의 생성 259
7.1.1 벡터로서의 문자열 260
7.2 문자열에 대한 연산 262
7.2.1 사슬화(Concatenation) 263
7.2.2 맞춤형 문자열의 생성 264
7.2.3 여백 문자의 제거 269
7.2.4 대소문자의 변경 270
7.2.5 문자열들의 비교 271
7.2.6 문자열 찾기, 대체하기 및 분리하기 272
7.2.7 문자열의 평가 276
7.3 문자열에 대한 "is" 함수 279
7.4 문자열과 숫자 형태 사이의 전환 279
다른 흥미로운 특성들의 탐구 282
요 약 283
연 습 문 제 284

CHAPTER 8. 데이터 구조: 셀 배열과 구조체
8.1 셀 배열 294
8.1.1 셀 배열의 생성 294
8.1.2 셀 배열 원소와 속성들의 참조와 제시 295
8.1.3 문자열을 셀 배열에 저장하기 299
8.2 구조체(Structure) 300
8.2.1 구조체 변수의 생성과 수정 300
8.2.2 구조체를 함수에 전달하기 304
8.2.3 관련되는 구조체 함수 305
8.2.4 구조체 벡터 306
8.2.5 중첩된 구조체 314
8.2.6 중첩된 구조체의 벡터 315
다른 흥미로운 특성들의 탐구 318
요 약 318
연 습 문 제 319

CHAPTER 9. 고급 파일 입력과 출력
9.1 저급 파일 I/O 함수 326
9.1.1 파일 열기와 닫기 326
9.1.2 파일로부터의 읽기 328
9.1.3 파일에 기록하기 338
9.1.4 파일에 붙이기 340
9.2 스프레드쉬트 파일의 기록과 읽기 340
9.3 변수에 대한 MAT-파일의 사용 342
9.3.1 변수를 파일에 기록하기 342
9.3.2 변수를 MAT-파일에 덧붙이기 343
9.3.3 MAT-파일로부터 읽기 344
다른 흥미로운 특성들의 탐구 344
요 약 345
연 습 문 제 346

CHAPTER 10. 고급 함수들
10.1 익명함수 355
10.2 함수 핸들의 사용 357
10.2.1 함수의 함수 358
10.3 가변적인 인수들의 수 362
10.3.1 가변적인 입력인수들의 수 362
10.3.2 가변적인 출력인수들의 수 365
10.4 중첩함수 369
10.5 되부름 함수(Recursive function) 370
다른 흥미로운 특성들의 탐구 375
요 약 375
연 습 문 제 376

CHAPTER 11. 고급 그래프 기법
11.1 그래프 함수 386
11.2 동영상화 393
11.3 3차원 그래프 394
11.4 그래프의 조정 400
11.5 핸들 그래픽스(Handle Graphics)와 그래프 속성 401
11.5.1 그래프 객체와 속성 402
11.5.2 코어 객체(Core objects) 406
11.6 그래프 응용 416
11.6.1 함수로부터의 그래프 작성 416
11.6.2 파일 데이터의 그래프 작성 418
11.7 그래프의 저장과 프린트 421
다른 흥미로운 특성들의 탐구 421
요 약 422
연 습 문 제 423

CHAPTER 12. 기본적인 통계, 집합, 고르기, 그리고 지수화
12.1 통계함수 436
12.1.1 평균 437
12.1.2 분산과 표준편차 439
12.1.3 모드(Mode) 441
12.1.4 중간값(Median) 441
12.2 집합연산 442
12.3 정렬 446
12.3.1 구조체 벡터의 정렬 449
12.3.2 문자열의 정렬 452
12.4 지수벡터 454
12.4.1 구조체 벡터들의 참조 456
12.5 탐색 457
12.5.1 순차탐색 457
12.5.2 이진탐색 458
다른 흥미로운 특성들의 탐구 461
요 약 462
연 습 문 제 463

CHAPTER 13. 시각과 사운드
13.1 사운드 파일 471
13.2 이미지 처리 473
13.2.1 컬러맵 474
13.2.2 실제 색상 행렬들 480
13.2.3 이미지 파일들 483
13.3 그래픽 사용자 접속기(GUI, Graphical User Interface) 입문 485
13.3.1 GUI의 기초 486
13.3.2 텍스트 상자, 누름버튼, 슬라이더 488
13.3.3 GUI에서의 그래프와 이미지 501
13.3.4 정규화된 단위와 버튼 그룹 504
다른 흥미로운 특성들의 탐구 508
요 약 508
연 습 문 제 509

CHAPTER 14. 고급 수학
14.1 데이터에 대한 곡선접합 524
14.1.1 다항식 524
14.1.2 곡선접합 525
14.1.3 안짐작(Interpolation)과 바깥짐작(Extrapolation) 526
14.2 복소수 530
14.2.1 복소수에 대한 항등관계 532
14.2.2 복소수의 덧셈과 뺄셈 533
14.2.3 복소수들의 곱셈 534
14.2.4 공액 복소수와 절대값 534
14.2.5 다항식으로 나타낸 복소방정식 535
14.2.6 극좌표 형태 535
14.2.7 그래프 작성 536
14.3 선형대수방정식 시스템에 대한 행렬풀이 538
14.3.1 행렬의 속성 538
14.3.2 선형 대수방정식 544
14.4 심볼 수학(Symbolic Mathematics) 557
14.4.1 심볼 변수와 표현 557
14.4.2 단순화 함수 559
14.4.3 표현의 제시 561
14.4.4 방정식의 풀이 563
14.5 미적분학: 적분과 미분 565
14.5.1 사다리꼴 공식 565
14.5.2 미분 567
14.5.3 심볼수학 툴박스에서의 미적분 568
다른 흥미로운 특성들의 탐구 570
요 약 570
연 습 문 제 571
찾아보기 585
[교보문고에서 제공한 정보입니다.]