在具有递归函数的子文件夹中搜索

时间:2015-08-28 14:42:38

标签: c++ c matlab octave

我正在编写一个八度的代码,它与matlab中的代码相同,具有递归函数。我有很多文件夹和子文件夹,在其中一个子文件夹中,有一个名为img的文件夹,在img文件夹中有两个图像文件,我读取并计算了一些数据。 / p>

以下是代码

function findin(folder)

foldername = 'img';
filetofind = '*.ppm';

scalefront = 0.05;
scaletop = 0.05;


dirinfo = dir(folder);
dirinfo(~[dirinfo.isdir]) = [];  %remove non-directories
tf = ismember( {dirinfo.name}, {'.', '..'});
dirinfo(tf) = [];  %remove current and parent directory.

for i=1:length(dirinfo)
  if strcmp(dirinfo(i).name, foldername)
   files = dir(fullfile(dirinf(i).name, filetofind));
   frontimage = strcat(files(1).name);
   topimage = strcat(files(2).name);
   Angle = getAngle(frontimage, scalefront, topimage, scaletop);
   printf('\nAngle for images %s and %s is: &f\n', frontimage, topimage, Angle);
  else
   findin(dirinfo(i).name);
  end
end
printf('done!');
endfunction

问题是if语句永远不会变成true,而在我的任何文件夹中,它只是打印'完成!'根据文件夹的数量。这意味着它不会进行递归调用。

我是否对递归调用做错了?

0 个答案:

没有答案