TearDitch
[너Do 나Do MATLAB] #1 경로지정 하기 본문
[너Do 나Do MATLAB]의 첫 번째 포스팅은 처음 MATLAB SW를 실행 시킨 후 나의 작업 공간을 정해주는 경로지정 하기로 시작하겠습니다.
일반적으로 MATLAB을 실행 시키면 왼쪽에는 Current Folder 창, 가운데 Command Window로 구성되어 있고 상단 메뉴바와 창 사이에 폴더 경로 주소가 나오는 형태로 GUI가 구성되어 있습니다. 여기서 현재 폴더창이 바로 원하는 작업을 수행하려는 작업 공간이라고 할 수 있습니다. 처리하고자 하는 데이터 또는 스크립트 파일(*.m)이 이 폴더 내에 위치하여야 합니다. 그렇지 않은 경우 어떤 파일이건 인식하지 못 합니다. 만약 내가 작업하고자 하는 데이터 또는 스크립트 파일이 여러 폴더에 분산되어 있다면 그 해당 파일을 실행하기 위해 항상 현재 폴더를 바꾸어 주어야 합니다. 하지만 경로지정은 현재 폴더창에 없는 파일이라 하더라도 MATLAB에서 불러들이고 실행할 수 있게 해주는 것입니다.
경로지정 하기는 C언어의 include 명령어와 유사합니다. 내가 사용하고자 하는 library를 불러들이듯 MATLAB은 내가 사용하고자 하는 함수나 데이터 파일 등의 경로를 불러들입니다. MATLAB은 내가 경로지정을 하지 않더라도 기본으로 불러들인 경로 정보를 갖고 있습니다. 이것을 search path라고 부르는데요. Command Window에 matlabpath를 쳐보면 확인할 수 있습니다. 보시다시피 MATLAB이 설치된 시스템 폴더가 모두 해당된다는 것을 알 수 있습니다. 따라서 해당 폴더 내에 있는 어떤 파일이건 우리는 불러들이거나 실행할 수 있습니다.
보통 MATLAB을 사용하게 되면 자신만의 스크립트를 작성해서 어딘가에 보관 하고 폴더 형식으로 정리를 하겠죠. 만약 이 스크립트들을 위에서 본 search path 내에 생성했다면 문제가 없겠으나 다른 경로에 저장해놨다면 이것을 불러들일 수 있도록 경로지정을 해주는 것입니다.
경로지정 방법 중 첫 번째는 일일이 경로를 더해주는 것입니다. Current Folder에 자신이 사용하려는 폴더를 마우스로 우클릭을 해보면 아래에 Add to Path가 나타납니다. 활성화되는 탭에는 Selected Folders와 Selected Folders and Subfolders가 있습니다. 전자는 해당되는 폴더만 search path에 경로를 추가하는 것이고 후자는 그 폴더에 딸린 하위 폴더를 모두 경로 추가하는 것입니다. 선택해보면 Current Folder 창에 흐릿해던 폴더 아이콘이 뚜렷하게 바뀌는 것을 볼 수 있습니다. Selected Folders를 선택하고 해당 폴더가 하위 폴더를 갖고 있다면 하위 폴더는 여전히 흐릿하게 나타나는 것을 확인 할 수 있습니다. 그리고 다시 matlabpath를 쳐보면 가장 위에 방금 우리가 선택한 폴더가 경로 추가된 것을 알 수 있습니다.
두 번째 방법은 위에서 한 수작업을 명령어를 통해 수행하는 것입니다. 이 때 사용하는 함수가 addpath 입니다. 만약 우리가 My Folder라는 폴더를 경로 추가를 한다면 아래 예시와 같이 사용하면 됩니다.
ex) addpath('C:\Program Files\MATLAB\R2016a\bin\My Folder')
함수의 문법을 알고 싶다면 명령창에 help functionName 라고 치면된다.
또는 shift + F1 을 눌러 함수 검색창으로도 찾아 볼 수 있다.
그런데 위에서 본 것처럼 만약 이 폴더 내에 하위 폴더가 존재한다면 어떻게 해야할까요? 일일이 addpath에 경로를 써넣고 실행시키는 방법이 있겠지만 그렇게 하면 굳이 명령어를 사용할 필요가 없어 보입니다. 이 때 유용하게 사용할 수 있는 함수가 genpath 입니다. 이것은 내가 지정한 폴더가 포함한 모든 하위폴더의 경로를 문자 형태로 생성해주는 함수입니다. 아래 예시와 같이 genpath를 사용하면 폴더 내의 하위 폴더 경로가 생성되는 것을 볼 수 있습니다. 이것을 사용해서 Selected Folders and Subfolders와 같은 기능을 수행할 수 있습니다.
ex) genpath('C:\Program Files\MATLAB\R2016a\bin\My Folder')
addpath(genpath('C:\Program Files\MATLAB\R2016a\bin\My Folder'))
반대로 폴더를 경로 삭제하고 싶은 경우에는 rmpath 라는 함수를 사용하면 됩니다. 사용법은 addpath와 같습니다.
그런데 위에서 수행한 방법들은 만약 MATLAB 프로그램을 종료하고 다시 실행시키면 추가된 경로가 메모리에서 사라지게 됩니다. 만약 내가 항상 MATLAB을 실행했을 때 해당 폴더가 항상 search path로 지정되도록 하고 싶다면 세 번째 방법을 사용하면 됩니다. userpath 라는 함수를 이용하는 것인데요. 이 함수를 사용하면 내가 지정한 폴더를 search path에 항상 등록을 시켜줍니다. 사용방법은 아래와 같습니다.
Syntax :: userpath(newpath) % 새로운 경로 추가
userpath('reset') % userpath 초기화
userpath('clear') % userpath 삭제
ex) userpath('C:\Program Files\MATLAB\R2016a\bin\My Folder')
오늘은 여기까지...
addpath : 경로 추가하기
genpath : 폴더 경로 문자열 생성하기, 폴더 내 포함된 모든 하위폴더 각각 생성
rmpath : 경로 삭제하기
userpath : search path 등록, 삭제 하기
'MATLAB' 카테고리의 다른 글
[너Do 나Do MATLAB]#5 제어흐름(Control Flow), 조건문(Conditional Statements)/루프 제어문(Loop Control Statements) 사용 (0) | 2018.02.03 |
---|---|
[너Do 나Do MATLAB]#4 논리연산자(Boolean/Relational operator)와 논리연산(Logical operation) (0) | 2018.01.18 |
[너Do 나Do MATLAB]#3 수치연산(Numerical Manipulation)과 스칼라, 벡터, 행렬의 입력 (0) | 2018.01.14 |
[너Do 나Do MATLAB]#2 데이터 형식(Data Type) (0) | 2018.01.13 |
[너Do 나Do MATLAB] #0 들어가며 (0) | 2017.12.31 |