ch. 7 셀배열과구조체 - prof. soon s. jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf ·...
TRANSCRIPT
![Page 1: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/1.jpg)
CH. 7 셀 배열과 구조체
![Page 2: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/2.jpg)
학습 목표학습 목표
셀 배열의 이해와 정의 및 활용1셀 인덱싱과 컨텐트 인덱싱의 이해와 활용2구조체의 이해와 정의 및 활용3
구조체 배열의 이해와 활용4
MATLAB PROGRAMMING CH. 7 2
![Page 3: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/3.jpg)
7.1 셀 배열서로 다른 타입을 가지는 데이터들을 배열의 형태로 저장한 것서로 다른 타입을 가지는 데이터들을 배열의 형태로 저장한 것
MATLAB PROGRAMMING CH. 7 3
![Page 4: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/4.jpg)
7.1.1 셀 배열의 생성
1) 중괄호를 셀 구성자로 이용해서 셀 배열 생성
cArray={ 12, 'abcdef'; [2 8 5], [1 5 ; 8 3] }
(예제 7-1)명령어 창에서 다음과 같은 명령을 실행해 셀 배열을 생성해 보시오명령어 창에서 다음과 같은 명령을 실행해 셀 배열을 생성해 보시오.
cArray={ 12, 'abcdef'; [2 8 5], [1 5 ; 8 3] }
MATLAB PROGRAMMING CH. 7 4
![Page 5: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/5.jpg)
cArray 가 생성된 작업공간창
MATLAB PROGRAMMING CH. 7 5
![Page 6: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/6.jpg)
< 명령어 cellplot - 셀 배열 구조 확인>
명령어 창에 “cellplot(cArray)”를 입력명령어 창에 cellplot(cArray) 를 입력
MATLAB PROGRAMMING CH. 7 6
![Page 7: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/7.jpg)
< 명령어 celldisp - 셀 배열의 내용 확인>
MATLAB PROGRAMMING CH. 7 7
![Page 8: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/8.jpg)
2) cell 명령어 사용하여 셀 배열 생성
MATLAB PROGRAMMING CH. 7 8
![Page 9: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/9.jpg)
(예제 7-2) 명령어 창에서 다음과 같이 cell 명령을 실행하여 셀 배열을 정의해 보시오.
MATLAB PROGRAMMING CH. 7 9
![Page 10: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/10.jpg)
7.1.2 셀 인덱싱 (cell indexing)과 컨텐츠 인덱싱(contentindexing)indexing)
• 인덱싱 배열의 특정한 위치를 지정하는 것인덱싱 배열의 특정한 위치를 지정하는 것
MATLAB PROGRAMMING CH. 7 10
![Page 11: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/11.jpg)
< 셀 인덱싱(Cell Indexing) >
• 셀 배열의 각 셀을 인덱싱하는 것 셀 배열 안에 있는 특정한 셀을 가리켜 참조하는 것
• 셀 인덱싱에는 소괄호 ( )가 사용됨• 셀 인덱싱에는 소괄호 ( )가 사용됨
셀 배열이름( i ) 또는 셀 배열이름( i, j )
MATLAB PROGRAMMING CH. 7 11
![Page 12: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/12.jpg)
(예제 7-3)명령어 창에서 다음과 같이 셀 인덱싱을 통해 셀 배열의 셀을 참조하여 다른 변수에 대입하는 것을 해보자.
MATLAB PROGRAMMING CH. 7 12
![Page 13: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/13.jpg)
(예제 7-4)다음의 명령을 실행하여 셀 인덱싱을 이용한 셀 배열 내의 특정한 셀을 다른 셀로 대치하는 것을 실행해 보자로 대치하는 것을 실행해 보자.
MATLAB PROGRAMMING CH. 7 13
![Page 14: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/14.jpg)
< 컨텐츠 인덱싱 (Content Indexing) >
셀 배열에서 지정한 셀의 내용( t t)를 인덱싱하는 것• 셀 배열에서 지정한 셀의 내용(content)를 인덱싱하는 것셀 배열 안에 있는 특정한 셀의 내용을 가리켜 그 내용을 참조하거나
(읽어오거나) 또는 그 내용에 다른 값을 대입하는 것• 컨텐츠 인덱싱에는 중괄호 { }가 사용됨• 컨텐츠 인덱싱에는 중괄호 { }가 사용됨
셀 배열이름{ i } 또는 셀 배열이름{ i, j }
MATLAB PROGRAMMING CH. 7 14
![Page 15: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/15.jpg)
(예제 7-5)명령어 창에서 다음의 컨텐츠 인덱싱을 통해 셀 배열의 각 셀의 내용을 참조하는 것을 보자하는 것을 보자.
MATLAB PROGRAMMING CH. 7 15
![Page 16: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/16.jpg)
(예제 7-6)다음을 실행하여 컨텐츠 인덱싱을 이용한 셀 배열 내의 특정한 셀의 내용을 다른 값으로 대치하는 것을 보자른 값으로 대치하는 것을 보자.
MATLAB PROGRAMMING CH. 7 16
![Page 17: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/17.jpg)
7.1.3 셀의 내용 참조(예제 7-7)다음의 명령을 실행하여 각 셀에 할당된 데이터를 수정해 보자.
MATLAB PROGRAMMING CH. 7 17
![Page 18: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/18.jpg)
7.1.3 중첩된 셀 배열 (예제 7-8)다음 명령을 실행하여
셀 배열의 셀에 다른 셀 배열이 할당된 것
중첩 셀 배열을 이해해보자.
셀 배열의 각 셀은 그 안에다른 셀 배열을 그 내용(content)으로서(content)으로서할당받을 수 있다.
MATLAB PROGRAMMING CH. 7 18
![Page 19: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/19.jpg)
②에서 cellplot(cellA)를 실행하면 다음과 같이 cellA의 구조②에서 p ( )를 실행하면 다음과 같이 의 구
MATLAB PROGRAMMING CH. 7 19
![Page 20: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/20.jpg)
7.2 구조체
• 구조체는 셀 배열과 같이 서로 다른 형식의 여러 개의 데이터를 같이 저장할수 있다.
• 구조체는 자신이 포함할 데이터를 할당할 변수들을 가지며 이 변수들에 다양한 형식의 값을 할당하여 서로 다른 형식의 데이터를 저장할 수 있다. 이렇게구조체 안에 포함된 변수를 필드라고 한다구조체 안에 포함된 변수를 필드라고 한다.
MATLAB PROGRAMMING CH. 7 20
![Page 21: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/21.jpg)
MATLAB PROGRAMMING CH. 7 21
![Page 22: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/22.jpg)
7.2.1 구조체 생성과 활용
(1) 점연산자를 이용한 구조체 생성
구조체 이름.필드이름 = 값
Car.model='KA101'
- 예제
Car.model KA101Car.year=2011Car.plate='KS8824'
MATLAB PROGRAMMING CH. 7 22
![Page 23: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/23.jpg)
(예제 7-9)앞에서 언급한 구조체 Car를 다음과 같이 명령어 창에서 점연산자를 이용하여생성하시오생성하시오.
구조체 Car를 생성한 후의 작업공간창
MATLAB PROGRAMMING CH. 7 23
![Page 24: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/24.jpg)
(2) 내장함수 struct를 이용한 구조체 생성
구조체이름 = struct( '필드이름1‘, 값1, ’필드이름2‘, 값2 .... )
Car= struct('model','KA101', 'year', 2011, 'plate','KS8824')
- 예제
(예제 7-10)예제 7-9의 구조체 Car를 내장함수 struct를 이용하여 정의하시오.
MATLAB PROGRAMMING CH. 7 24
![Page 25: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/25.jpg)
(3) 구조체의 필드 값 수정, 필드의 추가 및 삭제
<구조체 필드값 수정>
구조체 이름 필드 = 새로운 값구조체 이름.필드 = 새로운 값
setfield( 구조체이름, ‘필드이름’, 새로운 값 )
(예제 7-11)다음의 명령을 실행하여 점 연산자와 setfield 함수를 이용해 구조체의 필드의값을 수정하시값을 수정하시오.
MATLAB PROGRAMMING CH. 7 25
![Page 26: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/26.jpg)
<구조체 필드 추가 >
구조체에 새로운 필드를 추가하는 것도 점연산자나 내장함수 setfield를 이용
(예제 7-12)예제 7-11의 구조체에 대해 다음의 명령을 실행하여 구조체의 필드를 추가하시오.예제 7 11의 구조체에 대해 다음의 명령을 실행하여 구조체의 필드를 추가하시오.
MATLAB PROGRAMMING CH. 7 26
![Page 27: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/27.jpg)
<구조체 필드 삭제>
구조체 이름 = rmfield(구조체 이름, 삭제할 필드이름)
구조체 이름 = rmfield(구조체 이름 삭제할 필드의 셀배열)구조체 이름 = rmfield(구조체 이름, 삭제할 필드의 셀배열)= rmfield(구조체이름, {‘필드이름1’, ‘필드이름2’})
MATLAB PROGRAMMING CH. 7 27
![Page 28: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/28.jpg)
(예제 7-13)예제 7-12에서 정의된 구조체에서 rmfield를 이용해서 다음과 같이 필드를 제거하시오.하시
MATLAB PROGRAMMING CH. 7 28
![Page 29: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/29.jpg)
(4) 구조체의 필드 확인 및 필드 값 참조
< 필드 확인 >< 필드 확인 >ⅰ) 내장함수 disp를 이용하여 구조체가 가지고 있는 필드들과 각 값을 확인할 수 있다. ⅱ) 내장함수 fieldnames를 이용하면 구조체가 가지고 있는 필드의 이름을 확인할 수
있다있다.ⅲ) 내장함수 isfield를 이용하여 구조체가 특정 필드를 가지고 있는지 확인할 수 있다.
fieldnames( 구조체 이름)
isfield( 구조체 이름, ‘필드이름’ )
isfield( 구조체 이름 { ‘필드이름1’ ‘필드이름2’ } )isfield( 구조체 이름, { 필드이름1 , 필드이름2 } )
MATLAB PROGRAMMING CH. 7 29
![Page 30: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/30.jpg)
(예제 7-14) 다음과 같이 명령어 창에서 실행하여 내장함수 fieldnames와 isfield의 사용법을익혀보자.
MATLAB PROGRAMMING CH. 7 30
![Page 31: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/31.jpg)
< 필드 값 참조 >
점연산자를 이용하거나 내장함수 getfield를 이용
getfield( 구조체이름 ‘필드이름’)getfield( 구조체이름, 필드이름 )
(예제 7-15)(예제 7-15) 다음과 같이 명령어 창에서 실행하여 점 연산자와 내장함수 getfield를 사용하여 구조체의 필드의 값을 참조해보자.
MATLAB PROGRAMMING CH. 7 31
![Page 32: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/32.jpg)
7.2.2 구조체 배열
구조체 배열은 구조체를 원소로 갖는 배열
MATLAB PROGRAMMING CH. 7 32
![Page 33: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/33.jpg)
(1) 구조체 배열 생성
(예제 7 16)(예제 7-16)앞에서 다루었던 구조체 배열 Cars를 생성해 보자.
MATLAB PROGRAMMING CH. 7 33
![Page 34: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/34.jpg)
①에서 실행 후, 작업 공간창
②에서 실행 후, 작업 공간창
MATLAB PROGRAMMING CH. 7 34
![Page 35: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/35.jpg)
(예제 7-17)앞에서 다루었던 구조체 배열 Cars를 생성해 보자.앞에서 다루었던 구조체 배열 Cars를 생성해 보자.
MATLAB PROGRAMMING CH. 7 35
![Page 36: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/36.jpg)
①에서 실행 후, 작업 공간창
MATLAB PROGRAMMING CH. 7 36
![Page 37: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/37.jpg)
• repmat 함수를 이용한 구조체 배열 생성
repmat(A, M, N)
(예제 7 18)(예제 7-18)앞에서 다루었던 구조체 배열Cars를 repmat 함수를 이용하여 생성하시오.
MATLAB PROGRAMMING CH. 7 37
![Page 38: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/38.jpg)
(2) 구조체 배열에서 필드 참조
• 점 연산자를 이용하는 방법과 내장함수 getfield를 이용하는 방법
X = 구조체 배열 이름(i) 필드이름
X = getfield(구조체 배열 이름(i), '필드이름')
X = 구조체 배열 이름(i).필드이름
• 구조체 배열에서 i 번째 원소의 필드의 값 수정
구조체 배열 이름(i).필드이름 = 새로운 값
구조체 배열 이름(i) = setfield(구조체 배열 이름(i), '필드이름', 새로운 값)
MATLAB PROGRAMMING CH. 7 38
![Page 39: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/39.jpg)
(예제 7-19)예제 7-18에서 생성한 구조체 배열을 이용하여 다음의 명령을 실행하여 구조체배열의 필드값을 참조하고 수정하시오배열의 필드값을 참조하고 수정하시오.
MATLAB PROGRAMMING CH. 7 39
![Page 40: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/40.jpg)
공학 예제공학 예제
사람의 인원수와 각 사람의 이름을 입력 받고 그 이름의 첫 글자를사람의 인원수와 각 사람의 이름을 입력 받고 그 이름의 첫 글자를기준으로 오름차순으로 정렬하여 출력하는 스크립트를 작성하시오. 단 입력 받은 이름을 셀 배열로 저장하여 정렬하시오.
MATLAB PROGRAMMING CH. 7 40
![Page 41: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/41.jpg)
MATLAB PROGRAMMING CH. 7 41
![Page 42: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/42.jpg)
예를 들어 3명의 이름을 입력 받아 cellA에 다음과 같이 저장하고 정렬하는 경우를 보자.
• k=1이고 j=2인 경우
MATLAB PROGRAMMING CH. 7 42
![Page 43: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/43.jpg)
• k=1이고 j=3인 경우
MATLAB PROGRAMMING CH. 7 43
![Page 44: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/44.jpg)
k=2이고 j=3인 경우 k=2이고 j=3인 경우
MATLAB PROGRAMMING CH. 7 44
![Page 45: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/45.jpg)
• 최종적인 결과
MATLAB PROGRAMMING CH. 7 45
![Page 46: CH. 7 셀배열과구조체 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter07.pdf · 2017-05-29 · 7.1 셀배열 서로다른타입을가지는데이터들을배열의형태로저장한것](https://reader031.vdocuments.mx/reader031/viewer/2022022016/5b77d2017f8b9a47518de707/html5/thumbnails/46.jpg)
• 스크립트를 eng_7_1.m 으로 저장하고 실행한 결과
MATLAB PROGRAMMING CH. 7 46