
단행본MATLAB : a practical introduction to programming and problem solving
MATLAB 활용: 프로그래밍과 문제 해결을 위한 실제적인 입문
- 저자
- Attaway, Stormy | 김진국 | 문승재 | 여영구 | 조병완
- 판사항
- 3판
- 발행사항
- 의왕 : 아진, 2014
- 형태사항
- 14, 591p. : 삽화, 도표 ; 26cm
- 서지주기
- 색인수록
소장정보
위치 | 등록번호 | 청구기호 / 출력 | 상태 | 반납예정일 |
---|---|---|---|---|
이용 가능 (1) | ||||
자료실 | E205925 | 대출가능 | - |
이용 가능 (1)
- 등록번호
- E205925
- 상태/반납예정일
- 대출가능
- -
- 위치/청구기호(출력)
- 자료실
책 소개
이 책의 목적은 MATLAB을 도구로 이용하여 기본적인 문제 풀이에 필요한 기본적인 프로그래밍 개념과 기법을 가르치는 데에 있다. MATLAB은 강력한 소프트웨어 패키지로서 수학적 연산으로부터 3차원 이미지 처리에 이르는 다양한 범위의 작업들을 수행하여 주는 내장함수들을 지니고 있다. 나아가 MATLAB은 사용자가 프로그램을 스스로의 목적에 맞게 조정할 수 있도록 하여 주는 완전한 프로그래밍 구조들을 지니고 있는 대학교재이다.
제 1 부: MATLAB을 이용한 프로그래밍 입문
제 1장: MATLAB 입문은 MATLAB 데스크탑 환경, 변수, 그리고 할당문들과 데이터 형태들을 다루고 있다. 수학 및 논리표현과 이에 이용되는 연산자들이 소개되며 아울러 문자, 랜덤수, 그리고 내장함수들과 도움말 검색창의 사용이 소개된다.
제 2장: 벡터와 행렬은 벡터와 행렬들의 생성과 처리를 소개하고 있다. 배열연산과 (행렬곱과 같은) 행렬연산들이 소개된다. 벡터와 행렬의 함수 인수로의 이용 및 벡터와 행렬을 위해 작성된 함수들을 다루고 있다. 코드의 벡터화에 유용한 개념들과 논리벡터들이 이 장에서 강조되고 있다.
제 3장: MATLAB 프로그래밍 입문은 알고리듬과 스크립트의 개념을 소개한다. 여기에는 간단한 입출력과 코멘트가 포함된다. 스크립트를 이용하여 간단한 그래프를 생성하며 파일의 입출력을 수행한다. 마지막으로 하나의 값을 계산하여 반환하는 함수 형태를 이용하여 사용자 정의 함수의 개념이 소개된다.
제 4장: 선택문은 else와 elseif 절을 수반하는 if문에서의 논리표현의 사용을 다룬다. 메뉴로부터 선택하는 개념으로서 switch 문이 예시된다. 아울러 논리 참이나 거짓을 반환하는 함수가 소개된다.
제 5장: 루프문과 코드의 벡터화는 헤아리기(for)와 조건 루프(while)의 개념을 소개한다. 합산 및 헤아림과 같은 많은 일반적인 활용들이 다루어지고 있다. 아울러 중첩루프들이 소개된다. 또한 오류조사, 결합루프 및 선택문들과 같은 루프들의 보다 정교한 사용들이 다루어지고 있다. 마지막으로 루프를 이용하는 대신 벡터와 행렬들에 대하여 내장함수와 연산자들을 사용하는 코드의 벡터화가 소개된다. 효율적인 코드의 작성을 위한 요령이 강조되며 코드의 분석을 위한 도구가 소개된다.
이 책의 나머지 부분 전체에서는 처음 5개의 장들에서 제시되는 개념들을 바탕으로 하고 있다.
제 6장: MATLAB? 프로그램은 스크립트와 사용자 정의 함수들에 대하여 좀 더 자세히 다루고 있다. 하나 이상의 값들을 반환하는 사용자 정의 함수들 및 아무것도 반환하지 않는 함수들이 소개된다. 사용자 정의 함수들을 호출하는 스크립트로 이루어지는 MATLAB 프로그램의 개념이 보기들과 함께 다루어진다. 보다 긴 메뉴구동 프로그램이 참조로 제시되지만 이는 생략될 수 있다. 부함수들과 변수들의 범위가 소개되며 아울러 약간의 디버깅 기법들이 소개된다.
이러한 프로그램 개념은 이 책의 나머지 부분 전체에서 이용되고 있다.
제 7장: 문자열 처리는 많은 내장 문자열 처리함수들은 물론 문자열과 숫자 형태들 사이의 변환을 다루고 있다. 그래프 라벨과 입력 프롬프트에서 문자열을 사용하는 것을 포함하는 몇 가지 보기들이 제시된다.
제 8장: 데이터 구조: 셀 배열과 구조체는 셀 배열과 구조체의 두 가지 주요 데이터 구조들을 소개한다. 일단 기본적인 구조체를 다룬 후에 중첩 구조체들과 구조체들의 벡터와 같은 보다 복잡한 데이터 구조들이 소개된다. 셀 배열은 이후의 장들에서, 이를테면 9장에서의 파일 입력, 10장에서의 함수 입력인수의 변수 수, 그리고 11장에서의 그래프 라벨과 같은 몇 가지 응용들에서 이용되므로 중요한 것으로 간주되어 먼저 다루어지고 있다. 객체의 속성들을 저장하기 위한 구조체 변수들의 이용이 제 11장에 소개되고 있지만 구조체에 관한 이 장의 나머지 부분은 생략할 수 있다.
제 9장: 고급 입출력 파일은 파일의 열림과 닫힘을 필요로 하는 저급 파일 입출력 문들을 다룬다. 한 번에 전체 파일을 읽을 수 있는 함수들 및 한 번에 한 줄씩만을 읽는 것을 필요로 하는 함수들이 소개되며 그들의 사용에 있어서의 차이점들을 보여주는 보기들이 제시된다. 나아가 스프레드 파일들로부터 읽거나 이 파일에 기록하기 및 MATLAB 변수들을 저장하는 .mat 파일들이 소개된다. 이 장에서는 셀 배열과 문자열 함수들이 광범위하게 사용된다.
제 10장: 고급함수는 익명함수, 중첩함수, 그리고 되부름 함수들과 같은 함수들의 형태와 고급 속성들을 다룬다. 함수 핸들 및 익명함수와 함수-함수에서의 이의 활용이 소개된다. 함수에 대한 입력 및 출력인수 수를 다양하게 하는 개념이 소개된다. 이는 셀 배열을 이용하여 수행된다. 이 장의 몇 가지 보기들에서 문자열 함수들이 사용되고 있다. 되부름 함수에 관한 부분은 이 장의 말미에 있으며 생략할 수 있다.
제 2 부: MATLAB?을 이용한 문제풀이에 대한 고급 주제들
제 11장: 고급 그래프 기법은 제 3장에서 소개된 그래프 함수들에 대하여 더욱 자세히 다루고 있다. 로그척도 그래프, 파이 차트 및 히스토그램과 같은 다양한 2차원 그래프 형태들이 소개되며 셀 배열과 문자열 함수를 이용하는 맞춤형 그래프가 소개된다. 3차원 그래프 함수 및 지정된 객체들에 대하여 좌표를 생성하는 일부 함수들이 예시된다. 핸들 그래픽스가 다루어지며 라인 너비 및 색상과 같은 일부 그래프 속성들이 소개된다. 주요 그래프 객체들 및 고급 그래픽 함수들에 의한 이들의 사용이 예시되고 있다. 파일로부터 데이터를 읽은 다음 셀 배열과 문자열 함수를 이용하여 이들의 그래프를 작성하는 것을 포함하는 응용들이 소개된다.
제 12장: 기본적인 통계, 집합, 정렬 및 인수화는 MATLAB의 일부 내장 통계 및 집합연산들로 시작한다. 이들 가운데 일부는 정렬된 데이터 집합을 필요로 하므로 정렬방법이 언급된다. 마지막으로 벡터로의 인수화와 벡터의 탐색이 소개된다. 구조체 벡터의 정렬 및 구조체의 벡터로의 인수화가 다루어지지만 이 절들은 원한다면 생략할 수 있다. 되부름 이진 탐색함수가 말미에 소개되는데 이 부분 역시 생략될 수 있다.
제 13장: 시각과 사운드는 사운드 파일들을 간략하게 논의하고 있으며 이미지 처리를 소개하고 있다. 아울러 GUI에서 이미지들의 결합과 버튼 그룹의 생성을 포함하는 GUI 프로그래밍이 소개되고 있다. GUI 보기들에서는 중첩함수들이 이용된다.
제 14장: 고급 수학은 곡선접합, 복소수, 선형 대수 방정식들의 풀이, 그리고 미적분학에서의 적분 및 미분과 같은 네 가지 기본적인 주제들을 다루고 있다. Gauss-Jordan 및 Gauss-Jordan 소거법을 이용하는 행렬풀이가 언급된다. 이 절은 수학적 기법들과 이들을 수행하는 MATLAB 함수들을 포함한다. 마지막으로 방정식 풀이함수들을 포함하여 심볼수학 툴박스 함수들의 일부가 제시되고 있다. 이 방법은 구조체를 결과로 반환한다.
[교육적 특징들]
이 책 전체에 걸쳐 학습이 더욱 쉽도록 의도된 몇 가지 교육적 도구들이 이용되고 있다.
먼저 “퀴즈”로 불리는 대화식 구성부분이 있는데 이들은 방금 다룬 내용에 대하여 생각해 보도록 고안되어 있다. 문제가 제시되고 해답이 주어져 있다. 해답을 읽기 전에 문제에 대하여 생각해 보는 것이 가장 도움이 될 것이다. 해답에는 종종 매우 유용한 정보가 포함되어 있으므로 어떤 경우에도 이를 그냥 지나쳐서는 안된다.
모든 장들에 걸쳐 “실습”문제들이 제시되어 있다. 이들은 방금 다룬 내용을 연습하는 매우 간단한 문제들이다.
“다른 흥미로운 특성들의 탐색” 절은 제 3판에서 각 장의 말미에 새로 추가된 것이다. 이 책은 완전한 참고서로 의도된 것은 아니며 MATLAB에서 이용 가능한 모든 내장함수들과 도구들을 다룰 수는 없다. 그러나 각 장에는 독자들이 탐색하기를 원할 수도 있는 그 장의 주제들과 연관되는 함수들 및 명령어들의 목록이 있다.
어떤 문제들이 소개되는 경우 이들은 “프로그래밍 개념”과 “효율적인 방법” 모두에 의하여 해결되고 있다. 이로써 기본적인 프로그래밍 개념들과 MATLAB 내장함수 및 연산자들에 대한 이해가 용이해진다. “효율적인 방법”은 프로그래머가 시간을 절약할 수 있도록 하는 방법들을 강조하여 주며 많은 경우 MATLAB에서 수행하는 것이 더 빠르다.
제 1 부: MATLAB을 이용한 프로그래밍 입문
제 1장: MATLAB 입문은 MATLAB 데스크탑 환경, 변수, 그리고 할당문들과 데이터 형태들을 다루고 있다. 수학 및 논리표현과 이에 이용되는 연산자들이 소개되며 아울러 문자, 랜덤수, 그리고 내장함수들과 도움말 검색창의 사용이 소개된다.
제 2장: 벡터와 행렬은 벡터와 행렬들의 생성과 처리를 소개하고 있다. 배열연산과 (행렬곱과 같은) 행렬연산들이 소개된다. 벡터와 행렬의 함수 인수로의 이용 및 벡터와 행렬을 위해 작성된 함수들을 다루고 있다. 코드의 벡터화에 유용한 개념들과 논리벡터들이 이 장에서 강조되고 있다.
제 3장: MATLAB 프로그래밍 입문은 알고리듬과 스크립트의 개념을 소개한다. 여기에는 간단한 입출력과 코멘트가 포함된다. 스크립트를 이용하여 간단한 그래프를 생성하며 파일의 입출력을 수행한다. 마지막으로 하나의 값을 계산하여 반환하는 함수 형태를 이용하여 사용자 정의 함수의 개념이 소개된다.
제 4장: 선택문은 else와 elseif 절을 수반하는 if문에서의 논리표현의 사용을 다룬다. 메뉴로부터 선택하는 개념으로서 switch 문이 예시된다. 아울러 논리 참이나 거짓을 반환하는 함수가 소개된다.
제 5장: 루프문과 코드의 벡터화는 헤아리기(for)와 조건 루프(while)의 개념을 소개한다. 합산 및 헤아림과 같은 많은 일반적인 활용들이 다루어지고 있다. 아울러 중첩루프들이 소개된다. 또한 오류조사, 결합루프 및 선택문들과 같은 루프들의 보다 정교한 사용들이 다루어지고 있다. 마지막으로 루프를 이용하는 대신 벡터와 행렬들에 대하여 내장함수와 연산자들을 사용하는 코드의 벡터화가 소개된다. 효율적인 코드의 작성을 위한 요령이 강조되며 코드의 분석을 위한 도구가 소개된다.
이 책의 나머지 부분 전체에서는 처음 5개의 장들에서 제시되는 개념들을 바탕으로 하고 있다.
제 6장: MATLAB? 프로그램은 스크립트와 사용자 정의 함수들에 대하여 좀 더 자세히 다루고 있다. 하나 이상의 값들을 반환하는 사용자 정의 함수들 및 아무것도 반환하지 않는 함수들이 소개된다. 사용자 정의 함수들을 호출하는 스크립트로 이루어지는 MATLAB 프로그램의 개념이 보기들과 함께 다루어진다. 보다 긴 메뉴구동 프로그램이 참조로 제시되지만 이는 생략될 수 있다. 부함수들과 변수들의 범위가 소개되며 아울러 약간의 디버깅 기법들이 소개된다.
이러한 프로그램 개념은 이 책의 나머지 부분 전체에서 이용되고 있다.
제 7장: 문자열 처리는 많은 내장 문자열 처리함수들은 물론 문자열과 숫자 형태들 사이의 변환을 다루고 있다. 그래프 라벨과 입력 프롬프트에서 문자열을 사용하는 것을 포함하는 몇 가지 보기들이 제시된다.
제 8장: 데이터 구조: 셀 배열과 구조체는 셀 배열과 구조체의 두 가지 주요 데이터 구조들을 소개한다. 일단 기본적인 구조체를 다룬 후에 중첩 구조체들과 구조체들의 벡터와 같은 보다 복잡한 데이터 구조들이 소개된다. 셀 배열은 이후의 장들에서, 이를테면 9장에서의 파일 입력, 10장에서의 함수 입력인수의 변수 수, 그리고 11장에서의 그래프 라벨과 같은 몇 가지 응용들에서 이용되므로 중요한 것으로 간주되어 먼저 다루어지고 있다. 객체의 속성들을 저장하기 위한 구조체 변수들의 이용이 제 11장에 소개되고 있지만 구조체에 관한 이 장의 나머지 부분은 생략할 수 있다.
제 9장: 고급 입출력 파일은 파일의 열림과 닫힘을 필요로 하는 저급 파일 입출력 문들을 다룬다. 한 번에 전체 파일을 읽을 수 있는 함수들 및 한 번에 한 줄씩만을 읽는 것을 필요로 하는 함수들이 소개되며 그들의 사용에 있어서의 차이점들을 보여주는 보기들이 제시된다. 나아가 스프레드 파일들로부터 읽거나 이 파일에 기록하기 및 MATLAB 변수들을 저장하는 .mat 파일들이 소개된다. 이 장에서는 셀 배열과 문자열 함수들이 광범위하게 사용된다.
제 10장: 고급함수는 익명함수, 중첩함수, 그리고 되부름 함수들과 같은 함수들의 형태와 고급 속성들을 다룬다. 함수 핸들 및 익명함수와 함수-함수에서의 이의 활용이 소개된다. 함수에 대한 입력 및 출력인수 수를 다양하게 하는 개념이 소개된다. 이는 셀 배열을 이용하여 수행된다. 이 장의 몇 가지 보기들에서 문자열 함수들이 사용되고 있다. 되부름 함수에 관한 부분은 이 장의 말미에 있으며 생략할 수 있다.
제 2 부: MATLAB?을 이용한 문제풀이에 대한 고급 주제들
제 11장: 고급 그래프 기법은 제 3장에서 소개된 그래프 함수들에 대하여 더욱 자세히 다루고 있다. 로그척도 그래프, 파이 차트 및 히스토그램과 같은 다양한 2차원 그래프 형태들이 소개되며 셀 배열과 문자열 함수를 이용하는 맞춤형 그래프가 소개된다. 3차원 그래프 함수 및 지정된 객체들에 대하여 좌표를 생성하는 일부 함수들이 예시된다. 핸들 그래픽스가 다루어지며 라인 너비 및 색상과 같은 일부 그래프 속성들이 소개된다. 주요 그래프 객체들 및 고급 그래픽 함수들에 의한 이들의 사용이 예시되고 있다. 파일로부터 데이터를 읽은 다음 셀 배열과 문자열 함수를 이용하여 이들의 그래프를 작성하는 것을 포함하는 응용들이 소개된다.
제 12장: 기본적인 통계, 집합, 정렬 및 인수화는 MATLAB의 일부 내장 통계 및 집합연산들로 시작한다. 이들 가운데 일부는 정렬된 데이터 집합을 필요로 하므로 정렬방법이 언급된다. 마지막으로 벡터로의 인수화와 벡터의 탐색이 소개된다. 구조체 벡터의 정렬 및 구조체의 벡터로의 인수화가 다루어지지만 이 절들은 원한다면 생략할 수 있다. 되부름 이진 탐색함수가 말미에 소개되는데 이 부분 역시 생략될 수 있다.
제 13장: 시각과 사운드는 사운드 파일들을 간략하게 논의하고 있으며 이미지 처리를 소개하고 있다. 아울러 GUI에서 이미지들의 결합과 버튼 그룹의 생성을 포함하는 GUI 프로그래밍이 소개되고 있다. GUI 보기들에서는 중첩함수들이 이용된다.
제 14장: 고급 수학은 곡선접합, 복소수, 선형 대수 방정식들의 풀이, 그리고 미적분학에서의 적분 및 미분과 같은 네 가지 기본적인 주제들을 다루고 있다. Gauss-Jordan 및 Gauss-Jordan 소거법을 이용하는 행렬풀이가 언급된다. 이 절은 수학적 기법들과 이들을 수행하는 MATLAB 함수들을 포함한다. 마지막으로 방정식 풀이함수들을 포함하여 심볼수학 툴박스 함수들의 일부가 제시되고 있다. 이 방법은 구조체를 결과로 반환한다.
[교육적 특징들]
이 책 전체에 걸쳐 학습이 더욱 쉽도록 의도된 몇 가지 교육적 도구들이 이용되고 있다.
먼저 “퀴즈”로 불리는 대화식 구성부분이 있는데 이들은 방금 다룬 내용에 대하여 생각해 보도록 고안되어 있다. 문제가 제시되고 해답이 주어져 있다. 해답을 읽기 전에 문제에 대하여 생각해 보는 것이 가장 도움이 될 것이다. 해답에는 종종 매우 유용한 정보가 포함되어 있으므로 어떤 경우에도 이를 그냥 지나쳐서는 안된다.
모든 장들에 걸쳐 “실습”문제들이 제시되어 있다. 이들은 방금 다룬 내용을 연습하는 매우 간단한 문제들이다.
“다른 흥미로운 특성들의 탐색” 절은 제 3판에서 각 장의 말미에 새로 추가된 것이다. 이 책은 완전한 참고서로 의도된 것은 아니며 MATLAB에서 이용 가능한 모든 내장함수들과 도구들을 다룰 수는 없다. 그러나 각 장에는 독자들이 탐색하기를 원할 수도 있는 그 장의 주제들과 연관되는 함수들 및 명령어들의 목록이 있다.
어떤 문제들이 소개되는 경우 이들은 “프로그래밍 개념”과 “효율적인 방법” 모두에 의하여 해결되고 있다. 이로써 기본적인 프로그래밍 개념들과 MATLAB 내장함수 및 연산자들에 대한 이해가 용이해진다. “효율적인 방법”은 프로그래머가 시간을 절약할 수 있도록 하는 방법들을 강조하여 주며 많은 경우 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