导入数据和循环文件

时间:2014-04-09 06:19:08

标签: matlab loops

我的目的是将字符串拆分成一部分然后检查' 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')) "

1 个答案:

答案 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_LISTHAYSTACK_LIST