matlab探路者 - 理解的问题

时间:2014-01-14 15:06:07

标签: matlab path

我有一个matlab函数,它将通过返回路径来查找文件。这正是我需要的目的。问题是代码是由我编写的。所以我不太明白这个函数是如何工作的,特别是我不理解的输入。

我希望你能帮我理解这个功能。 最好的问候!

以下是代码:

function B = getAllPaths(basepath, name)
temp=genpath(basepath);
A=regexp(temp,';','split');
j=1;
for i=1:length(A)-1
pfad=cell2mat(A(i));
if(exist([pfad name],'file'))
B(j)=cellstr(pfad);
j=j+1;
end
end
clear A i name pfad temp

2 个答案:

答案 0 :(得分:0)

我会将该功能写为

%// Get all child directories of 'basepath' that contain a file named 'name'
function B = getAllPaths(basepath, name)
    A = regexp(genpath(basepath), ';', 'split');
    B = A(cellfun(@(x) exist([x name],'file') ~= 0, A));
end

%// Get all child directories of 'basepath' that contain a file named 'name'
function B = getAllPaths(basepath, name)
    if ispc
        [OK,dirs] = system(['cd "' basepath '" && dir /s /b "' name '"']);
    elseif isunix
        [OK,dirs] = system(['find "' basepath '" -type f -name "' name '"']);
    end
    if ~OK
        B = cellfun(@fileparts, cellstr(b), 'UniformOutput', false);
    else
        B = {};
    end
end

MATLAB是互动的!所以与它互动吧!使用任何典型的basepathname并在命令窗口中逐行执行您的函数,每次都显示输出。尝试更改一些命令,看看它如何改变输出。输入help cellfun读取,学习,掌握。点击每个see also [...]底部的help中的链接,即使您认为自己知道这些链接。输入edit cell2mat读取,学习,掌握等等。

理解语言需要练习,而不是某些论坛的答案。

答案 1 :(得分:0)

非常感谢您的建议。我知道学习如何编程需要时间。我还在检查这段代码,但我还没完全理解它。

我遇到了问题: 存在([pfad name],'file')

E.g。当我试图找到“xyz”文件夹“ABC”时,“名称”中的文件必须是什么?我在名字中写了“ABC”,但后来却做了网络工作。

亲切的问候!