[MATLAB] 숫자형을 문자형으로, 문자형을 숫자형으로 변환하기, num2str 함수와 str2num 함수

일과 공부 사이/MATLAB|2019.04.16 23:13

img1.bmp, img2.bmp,..., img10.bmp 이미지들이 한 폴더에 들어있다고 가정해보자. 이 이미지들을 읽어서 어떠한 영상처리 작업을 시행하려고 한다. for문을 사용해서 img1.bmp부터 img10.bmp까지 읽어내려면 어떻게 해야할까? 아래와 같이 코드를 작성하면 된다. 

 

 

이 .m 파일은 img1.bmp,..., img10.bmp와 같은 폴더 내에 들어있어야 한다. 

 

여기서 가장 중요한 것은 바로 num2str 함수다. num2str함수는 이름에서도 알 수 있듯이 number to string, 즉 숫자형을 문자형으로 변환해준다. 따라서 for 문에 처음 들어섰을 때 i가 숫자형으로 1이었던 것을 문자형으로 바꿔서 '1'이 되게 한다. 그리고 그 다음 행에서 ['img', '1', '.bmp'] = 'img1.bmp'을 imread 함수가 읽어낸다. 

 

이 방식은 상당히 유용하다. 아마도 영상처리를 하시는 분들이라면 자주 사용하고 계실 것이라 생각한다. 

 

num2str과 정반대의 역할을 하는 함수는 str2num이다. string to number, 즉 문자형을 숫자형으로 변환해주는 것이다. 굳이 예제를 첨부하지는 않겠다. 

댓글()
  1. BlogIcon 코코넛냠냠 2019.04.17 01:27 신고 댓글주소  수정/삭제  댓글쓰기

    이러다 몇 달 지나 조회수 폭증하는 거 아닌가요. 이런 토막 지식이나 팁 형식 글들이 은근 인기 많아서 구글 검색으로 사람들 잔뜩 들어오게 하더라고요. 그나저나 MATLAB 내장 함수인 것 같은데 어떻게 그런 작명을 떠올렸는지 이름이 신박하네요. numtostr이나 strtonum보다 확실히 더 잘 읽힐 거에요.