我的目的是将字符串拆分成一部分然后检查' f11_data'包含那些分裂的单词。如果是,则返回0,如果否则返回1.我有100个字符串,但在我的代码时间内键入str / needle 100没有意义。我如何使用循环来做到这一点?我使用importdata
面临问题。
str1 = 'http://en.wikipedia.org/wiki/hostname';
str2 = 'http://hello/world/hello';
str3 = 'http://hello/asd/wee';
f11_data1 = 'hostname From wikipedia, the free encyclopedia Jump to: navigation, search In computer networking, a hostname (archaically nodename .....';
f11_data2 = 'hell';
f11_data3 = 'hello .....';
needles1 = strcat('\<', regexpi(str1,'[:/.]*','split'), '\>')
needles2 = strcat('\<', regexpi(str2,'[:/.]*','split'), '\>')
needles3 = strcat('\<', regexpi(str3,'[:/.]*','split'), '\>')
~cellfun('isempty', regexpi(f11_data1, needles1, 'once'))
~cellfun('isempty', regexpi(f11_data2, needles2, 'once'))
~cellfun('isempty', regexpi(f11_data3, needles3, 'once'))
这是我使用循环修改上述代码的方法:
data = importdata('URL')
needles = regexp(data,'[:/.]*','split') %// note the different search string
for i = 1:2
A11_data = needles{i};
data2 = importdata(strcat('f11_data', int2str(i)));
%feature11_data=(~cellfun('isempty', regexpi(data2, needles, 'once')))
%feature11(i)=feature11_data
~cellfun('isempty', regexpi(data2, needles, 'once'))
end
我收到错误: &#34; ???使用==&gt;时出错regexpi regexpi的所有单元格必须是字符串。
Error in ==> f11_test2 at 14
~cellfun('isempty', regexpi(haystack, needles, 'once')) "
答案 0 :(得分:0)
很难说你想要做什么但是,如果你想做同等的事情,
for i = 1:3
str = importdata(URL_LIST[i])
needle = strcat('\<', regexp(str,'[:/.]*','split'), '\>');
haystack = importdata(HAYSTACK_LIST[i]);
~cellfun('isempty', regexpi(haystack, needle, 'once'))
end
显然,您需要定义URL_LIST
和HAYSTACK_LIST
。