我正在编写一个八度的代码,它与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
,而在我的任何文件夹中,它只是打印'完成!'根据文件夹的数量。这意味着它不会进行递归调用。
我是否对递归调用做错了?