MatLab的: 这段代码检索某些页面的单词并将它们存储到wrd中,并将DB中的行存储到kwres中,然后将它们一起比较,并返回类似的单词。
为什么这段代码只返回数组的最后一个元素?
%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
端
答案 0 :(得分:0)
在:
set(handles.listbox2,'String',s)
指定要显示的s
中的字符串,因此您最终会显示找到的最后一个字符串(实际显示所有字符串,但在for
循环进行时会相互覆盖)。
您应该创建一个列表并动态添加与该列表匹配的每个字符串。列表应该在s
命令的参数中,而不是set
。
请查看详情Matlab Central如何操作。