컴퓨터의 지정된 HDD에있는 모든 .mat 파일을 재귀 적으로 찾는 matlab에 함수가 있습니다 (실제로 함수를 호출하는 래퍼가 있음). 매번 반환 할 때 특정 폴더에있는 파일을 제공하므로 드라이브에있는 수백 개의 폴더 (날짜순으로 구성)에 수백 개의 반환이 있기 때문에Matlab에서 재귀 함수가 반환하는 목록
다른 파일에서이 목록을 사용하여 작업을 수행 할 수 있도록 이러한 파일의 목록 (또는 행렬)을 만들려고합니다.
실제 반환 값은 파일 정보가 들어있는 필드가있는 구조 목록입니다. 반환 값은 폴더에있는 파일 수에 따라 항상 하나의 와이드와 길이입니다.
간단히 말해, 재귀 함수의 모든 반환 값을 하나의 목록/행렬에 넣는 방법을 알고 싶습니다.
팁을 보내 주시면 감사하겠습니다. 는
function direc = findDir(currentDir)
dirList = dir(currentDir);
if 2 == length(dirList)
direc = currentDir
files = dir([currentDir '*.mat'])
return
end
dirList = dirList(3:length(dirList));
fileListA = dir([currentDir '*.mat']);
if 0==isempty(fileListA)
direc = currentDir
files = dir([currentDir '*.mat'])
return
end
for i=1:length(dirList)
if dirList(i).isdir == 1
[currentDir dirList(i).name '\'];
findDir([currentDir dirList(i).name '\']);
end
end
end
귀하의 질문이 무엇인지 명확히하고 사용하는 관련 코드를 게시하십시오. 그것을 편집하려면 질문을 편집하십시오 –
고맙습니다. – jdrudds
아마도 [이] (http://stackoverflow.com/a/2654459/1586200)과 같은 것을 찾고있을 것입니다. 그것은 당신의 경우에 특별한 종류의 파일 인'.mat'을 위해 쉽게 수정할 수 있습니다. –