MATLAB 은 보통 수치 분석의 용도로 많이 사용 됩니다.
비싼 툴이니 만큼 어려운 수학들을 굉장히 쉽게 처리 할 수 있어서 너무나 좋은 툴이라고 생각을 했죠~
반면에 MATLAB 을 사용하면서 아쉬웠던 부분도 있었는데~
hash 또는 dictionary 형태의 데이터 타입에 대한 지원이었습니다. 그런데.. 비싼놈은 뭔가 다르더군요.
있었는데 제가 몰랐던 것이었습니다. ㅡㅡ;
2008b 버전부터 Map Data Structure 를 제공해 주고 있더군요. 아~~ 왜 이걸 지금 알았지.. ㅡㅡ;
hash 나 dictionary 형태의 데이터 구조는 요즘과 같이 검색이 일반화된 시대에 더욱더 광범위하게 사용되는 데이터 타입이라고 생각이 되는데요~
바로 key 와 value 의 형태로 자료를 저장해서 key 만으로 자료를 찾을 수 있게 해주는 데이터 타입입니다.
각 나라들의 수도를 저장하는 데이터 타입을 예로 해서 설명해 보겠습니다.
아래는 예로 설명하기 위한 나라와 수도에 대한 표 입니다.
|
위 표에서 key 는 나라로 하겠습니다.
위 표에 대한 데이터의 정의는 아래와 같이 합니다.
Map_ContCapi= containers.Map({'Korea', 'USA', 'Japan', 'China'}, {'Seoul','Washington','Tokyo', 'Beijing'});
이후에 프랑스의 수도 파리를 추가 하고 싶다면 ~ 요렇게 합니다. 굉장히 직관 적이죠~
Map_ContCapi('France')='Paris';
Map_ContCapi 라는 map objecy 의 키를 알고 싶을 때는 멤버 함수인 keys 라는 함수를 이용합니다.
Map_ContCapi.keys 하면 결과는 요렇게 나옵니다.
ans =
'China' 'France' 'Japan' 'Korea' 'USA'
value 를 알고 싶을때는? Map_ContCapi.values 하면 되고요~ 아래와 같이 나오죠~
ans =
'Beijing' 'Paris' 'Tokyo' 'Seoul' 'Washington'
이제 가장 중요한 찾기 인데요~
찾기야 너무나 간단하죠~
S='USA' ;
if isKey(Map_ContCapi,S) % Map_ContCapi 에 USA 라는 키가 정의되어 있다면~
fprintf('%s 의 수도는 %s 입니다. \n',S, Map_ContCapi(S))
end
command 창에 결과는 요렇게~~ 나옵니다.
USA 의 수도는 Washington 입니다.
좀더 자세한 설명은 MATLAB help 문서를 참조 하시길~
'programming language > MATLAB' 카테고리의 다른 글
MATLAB 축에 날짜 표시하기 datetick() (2) | 2012.06.20 |
---|---|
MATLAB 윈도우에서의 파일 쓰기 줄 바꿈 (8) | 2012.06.17 |
MATLAB log 저장하기 diary (0) | 2012.06.16 |
MATLAB Harmonographs (0) | 2012.06.11 |
MATLAB Fast DCT(Discrete cosine transform) algorithm (0) | 2012.05.29 |
Simulink From/To workspace 블록 사용하기 (0) | 2012.05.28 |
MATLAB Fractal, Mandelbrot (만델브로) 집합의 아름다움..... (0) | 2012.05.25 |
MATLAB Coil Spring (0) | 2012.05.11 |
댓글