2013-02-23 217 views
-2

MatLab: 这段代码检索某些页面的单词并将它们存储到wrd中,并将DB中的行存储到kwres中,然后将它们进行比较并返回喜欢的话。matlab:为什么循环返回唯一的最后一个元素

为什么这段代码只返回数组的最后一个元素?

%connection to DB 
con=database('Dic','',''); 
%retrieve kw_table rows (id,keywords) 
kwres=fetch(con,'select * from kw_table'); 

[FileName,PathName]= uigetfile('*.txt'); 
dat= [PathName FileName]; 
txt=fileread(dat); 
txt(~ismember(txt,['A':'Z' 'a':'z']))=' '; 
wrd=strread(txt,'%s','delimiter',' '); 

k=1; 
for i=1:length(wrd) 
s=wrd{i}; 
for j=1:length(kwres) 
    if strcmpi(s,kwres(j,2)) 
     ids{k}=kwres(j,1); 
     set(handles.listbox2,'String',s) 
     k=k+1; 
    end 
end 

+2

该代码不“返回”任何东西。你说什么变量只有最后一个元素? – 2013-02-23 21:16:09

+0

变量s和id – 2013-02-23 21:46:58

+0

什么是'numel(txt)'?什么是'numel(wrd)'?什么是'numel(kwres)'?什么是'k'? – 2013-02-23 22:32:24

回答

0

在:

set(handles.listbox2,'String',s) 

您指定s字符串来显示,所以你最终显示发现(其实所有显示最后一个,但覆盖彼此为for循环进行)。 您应该创建一个列表并动态添加与该列表相匹配的每个字符串。而不是s,该列表应该在set命令的参数中。

请检查详细信息Matlab Central如何做到这一点。

+0

谢谢...我会检查链接.. – 2013-03-04 21:11:44

相关问题