2013-02-23 222 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

相關問題