2014-03-06 129 views
0

我是一个Java程序员,没有matlab的背景,因此我真的无法用MATLAB的这些代码行。当我运行的代码,我得到了一个错误:解释matlab代码

??? Undefined function or variable 'nfile'. 

Error in ==> texture_id at 29 
fprintf(' \nneural network processing \n',nfile); 

我明白'path'是存储字符串变量,'demo'是布尔值,但对于其他行,我不想承担它做什么..你能帮我解释一下每一行吗?

下面的代码:

path = 'C:\Users\Dais\Documents\MATLAB\Data Sets\'; 

demo = true; 

elfile = dir('*.jpg'); 

[lu ri] = size(elfile); feat=zeros(lu,29); nomf=cell(lu,1); 
for nfi = 1:lu 
    nfile = elfile(nfi).name; 
    fprintf(' feature extraction file: %s \n',nfile); 
    nomf{nfi} = upper(nfile); 
    feat(nfi,:) = feature_ex([path nfile],demo); 
end 

fprintf(' \nneural network processing \n',nfile); 

回答

1

我想这里发生了什么是elfile = dir('*.jpg');在本地目录中找不到任何jpeg,因此lu是空的,并且nfile永远不会被填充。在代码中放置一个断点并检查它。我会成立了循环的方法是这样的:

for nfi=1:numel(elfile) 

正如@Rody Oldenhuis说,使用文档和帮助elarn了解每个功能(或按F1当光标在函数名)但这应该让你开始..

%Looks for all files with extention .jpg in current directory 
elfile = dir('*.jpg'); 

%lu and ri hold the rows, column lengths of elfile respectively 
[lu ri] = size(elfile); 

%creates an array of zeros of dimensions lu rows by 29 columns 
feat=zeros(lu,29); 

%creates an empty cell array (doc cell) dimensions lu rows by 1 
nomf=cell(lu,1); columns 
for nfi = 1:lu           %look through all files 
    nfile = elfile(nfi).name;       %get index nfi file 
    fprintf(' feature extraction file: %s \n',nfile); %print string 
    nomf{nfi} = upper(nfile);       %upper case 
    feat(nfi,:) = feature_ex([path nfile],demo);  %some external function 
end 

fprintf(' \nneural network processing \n',nfile);  %print string 
1

不是说明一切,一切关于MATLAB,我会这样说:MATLAB是互动!而且,为了支付MATLAB的好处之一就是该文档非常棒,获得帮助非常简单。

例如,您可以在MATLAB命令行中键入help <command>,并获得该命令的简短帮助,或doc <command>以获取完整的文档,通常带有示例和演示。整个文档也是在线的,如果你喜欢谷歌并且在浏览器中。

如果您的脚本或函数或类出现问题,您可以发出dbstop if error,以便在发生错误时将其放入调试器,然后您可以查看错误发生前所有变量的内容,输入新命令来调查错误等。您可以通过单击您想要中断的位置旁边的行号来设置断点,然后dbstep仅需一步,dbup可以将您移动到某个级别等位置。请参阅doc dbstop

您可以选择部分代码并按F9键,这将执行这些代码行。请注意,这相当于将代码复制粘贴到命令窗口并运行它,所以您通常会遇到未定义变量(以及类似问题)的问题(这种情况或类似情况是我怀疑在您的特定情况下发生的情况,因为你发布的代码不应该给出这个错误)。