Applying function only to certain files in directory

조회 수: 7 (최근 30일)
MiauMiau
MiauMiau 2017년 4월 10일
댓글: MiauMiau 2017년 4월 11일
Hi, I have the following code, which applies the function 'load_nii' to files from the current directory which I select manually with the variables k and l:
currentFolder = pwd;
listing = dir;
allDirNames = { listing.name };
dirLA =~ [ listing.isdir ];
dirLA(1:2) = 0;
dirNames = allDirNames(dirLA);
% set k, l to choose which files to convert
k = 3;
l = 182;
% convert Niftis to Mat-Files
for idx = k:l
foo(idx) = load_nii(allDirNames{idx});
betas{idx-(k-1)} = foo(idx).img;
end
What I want however is that the function load_nii is automatically applied to all files which start with certain strings (e.g. "results"), such that I don't have to set the variables k and l manually. How can I do that?
Thanks
  댓글 수: 4
Guillaume
Guillaume 2017년 4월 10일
Oh yes, with the solution proposed, there's no need to filter the directories anyway.
My comment was more generic in case such code (directory listing) is used for something else where file filtering does not apply.
I don't know why mathworks decided to return these two useless entries other than for the sake of matching the antiquated behaviour of dos dir.
MiauMiau
MiauMiau 2017년 4월 11일
yep I figured that...strange indeed that it is implemented like this, but my code works fine now, thanks for all the help

댓글을 달려면 로그인하십시오.

채택된 답변

dbmn
dbmn 2017년 4월 10일
The simplest solution is, when you know a priori what your files are called. In that case use wildcards with *
listing = dir('results*.m');
  댓글 수: 2
dpb
dpb 2017년 4월 10일
And, write the function such that you pass that "magic string" to the function as a user-specified variable instead of hardcoding it into the function.
MiauMiau
MiauMiau 2017년 4월 10일
Thanks, very helpful!:)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by