以下是我计算网址中点数的算法: 1)在matlab编辑器中输入完整的URL 2)消除后面的路径,然后离开URL的域部分 3)检查URL的域部分中的“。”/点数 4)如果URL的域部分中的'。'/点等于或大于3则返回1,否则如果1和3之间返回0,则返回-1
str = {'http://www.math-works.com/help/images/removing-noise-from-images.html';
'https://www.math.works.com/help/matlab/ref/strcmpi@dfvfv.html';
'google.com/voice';
'http://m.o.n.k.e.y.org/';
'stack.overflow.com/';
'meta.stackoverflow.com'};
out = regexp(str,'.*?[^/](?=(/([^/]|$)|$))','match','once')
A = {'.'};
cellfun('.'(n) ~isempty(n), strfind(out, A{1}))>1
我已经解决了以下问题:1)在matlab编辑器中输入完整的URL 2)消除后面的路径,然后离开URL的域部分3)检查URL的域部分中的'。'/点数,但是现在有问题4)如果URL的域部分中的'。'/点等于或大于3然后返回1,否则如果在1和3之间返回0,否则返回-1
答案 0 :(得分:1)
您只需使用正确的cellfun
命令即可获得答案。
str = {'http://www.math-works.com/help/images/removing-noise-from-images.html';
'https://www.math.works.com/help/matlab/ref/strcmpi@dfvfv.html';
'google.com/voice';
'http://m.o.n.k.e.y.org/';
'stack.overflow.com/';
'meta.stackoverflow.com'};
out = regexp(str,'.*?[^/](?=(/([^/]|$)|$))','match','once')
A=cellfun(@(x) length(strfind(x,'.')), out);
B=-1*ones(length(A),1);
B(A>=3)=1;
B(A==2)=0; %I am assuming between 1 to 3 is equal to 2.
您实际上可以编写一个函数来从A创建B,然后在cellfun
中包含该函数以直接获取B
。