왜 matlab을 이용해서 파일을 복사하려고 하는지 묻는 사람이 있을 것 같다. 간단히 ctrl+c와 ctrl+v로 할 수 있지 않냐고. 맞다. 그것이 가장 간단한 방법이다. 하지만 여러 개의 파일을 복사하는데 만약 각 파일의 이름을 원하는 이름으로 바꾸면서 복사하고 싶다면 어떻게 해야할까? ctrl+c, ctrl+v로 할 수 있지만, 굉장히 번거로운 작업이 될 수 있다.
ex1.txt, ex2.txt,..., ex1000.txt와 같이 1000개의 메모장 파일이 있다고 가정해보자. 그런데 어떤 필요에 따라서 이름을 test1.txt, test2.txt,...,test1000.txt와 같이 변경해줘야 한다면?
복사붙여넣기로 이 작업을 수행한다면 아마도 1시간이 넘게 걸릴 것이다. 난 그렇게 단순노동을 반복하고 싶지 않다. copyfile 함수를 이용하면 쉽게 해결할 수 있다.
copyfile 함수 사용법
우선 단 하나의 메모장 파일을 복사하면서 이름을 바꿔주는 코드를 짜보자.
clc, clear, close all
copyfile('ex1.txt', 'test1.txt'); % ex1.txt를 복사하는데 이름은 test1.txt로 변경해줘.
ex1.txt 파일을 복사하면서 이름은 test1.txt이 되게 했다. 제대로 파일이 복사되었는지 확인해보자. 우선 같은 폴더에 test1.txt이 생성된 것을 확인할 수 있다.
그렇다면 내용이 잘 복사되었는지 확인해보자.
원하는 대로 잘 복사되었다.
그럼 이번에는 1000개의 메모장 파일을 복사하면서 이름을 바꿔주는 코드를 짜보자.
clc, clear, close all
for i = 1:1000
copyfile(['ex', num2str(i), '.txt'], ['test', num2str(i), '.txt']);
end
for문을 이용해서 1000번을 반복한다. num2str이라는 함수를 사용했는데 이 함수는 숫자를 문자로 바꿔주는 함수다. 따라서 i=1일때, ['ex', num2str(i), '.txt'] = ['ex', num2str(1), '.txt'] = ['ex', '1', '.txt'] = 'ex1.txt'가 된다. 결국 i=1일때는 copyfile('ex1.txt', 'test1.txt')이 되고, i=2일때 copyfile('ex2.txt', 'test2.txt')이 되고, i=1000일때는 copyfile('ex1000.txt', 'test1000.txt')이 된다.
이처럼 단 몇줄의 코드로 매우 귀찮을 수 있는 단순노동을 모면할 수 있다. 이것이 코딩의 묘미 아니겠는가?
'Dev > matlab' 카테고리의 다른 글
[MATLAB] 야구 게임, 0과 9사이 숫자 3개 맞추기 (4) | 2019.04.26 |
---|---|
[MATLAB] 문자열에서 필요한 데이터만 추출하기, sscanf 함수 (2) | 2019.04.18 |
[MATLAB] 숫자형을 문자형으로, 문자형을 숫자형으로 변환하기, num2str 함수와 str2num 함수 (2) | 2019.04.16 |
matlab에서 문자열 비교하기, strcmp 함수 (0) | 2019.04.12 |
matlab을 통해 txt 파일(메모장)에 기록을 남기려면?, fprintf 함수 (0) | 2019.04.11 |
Matlab용 CNN 라이브러리 MatConvNet 설치하기 (win10 + visual studio 2015 + Matlab 2018b + CUDA 8.0 + cuDNN 5.1) (2) | 2019.02.25 |
LIBSVM 활용하여 매트랩에서 SVM 사용하기 (34) | 2018.12.19 |
메모장에 있는 숫자들을 matlab에서 읽어내려면?, textread 함수 (2) | 2017.10.07 |