-2

MatLab:このコードは、あるページの単語を取得してwrdに格納し、DBの行をkwresに格納してから、それらを比較して、likeの単語を返します。

このコードが配列の最後の要素のみを返すのはなぜですか?

%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

終わり

4

1 に答える 1

0

の:

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

表示する文字列を指定すると、最後に見つかった文字列が表示されます (実際にはすべてが表示されますが、ループが進行するにつれてs互いに上書きされます)。forリストを作成し、そのリストに一致する各文字列を動的に追加する必要があります。の代わりにs、リストはsetコマンドの引数にある必要があります。

その方法については、 Matlab Centralで詳細を確認してください。

于 2013-02-27T21:25:09.387 に答える