我有很多文件,有些文件是空的,但是当循环到空时,它会返回错误信息。如何避免这种情况,并在文件中没有任何内容时返回0。 这是我的代码,我想要满足两个条件,检查'A27_data'是否进入'data2',而某些'data2'文件是空的。
data2 = importdata(strcat('f9data\','f7_data', int2str(i)));
feature27_data=(cellfun(@(n) ~isempty(n), strfind(data2, A27_data)))
以下是我的完整代码,我已经检查了空文件。
data = importdata('DATA/URL/testing_URL')
domain_URL = regexp(data,'\w*://[^/]*','match','once')
[sizeData b] = size(domain_URL);
for i = 1:5
A27_data = domain_URL{i};
s =dir(strcat('f9data\','f7_data', int2str(i)));
if s.bytes == 0
return 0;
else
data2 = importdata(strcat('f9data\','f7_data', int2str(i)));
end;
feature27_data=(cellfun(@(n) ~isempty(n), strfind(data2, A27_data)))
B27(i)=sum(feature27_data)
end
feature27(B27>=10)=1;
feature27(B27<10&B27>5)=0;
feature27(B27<=5)=-1;
feature27'
答案 0 :(得分:0)
基于this answer,这是怎么回事:
for i = 1:5
A27_data = domain_URL{i};
s = dir(strcat('f9data\','f7_data', int2str(i)));
if s.bytes == 0
B27(i) = NaN;
else
data2 = importdata(strcat('f9data\','f7_data', int2str(i)));
feature27_data=(cellfun(@(n) ~isempty(n), strfind(data2, A27_data)));
B27(i)=sum(feature27_data);
end
end
在加载任何数据之前,请检查文件是否为空。如果是,请将NaN
分配给B27(i)
(或任何其他默认值)。如果文件实际包含数据,请对其执行处理。
修改强>
如果你不喜欢NaN
,你可以做别的事情,例如:
B27(i) = 0;
修改2
B27(i) = NaN
选项。 在if
/ else
循环后,插入此内容:
if ~isnan(B27(i))
B27(i) = data2
end
在for
- 循环之后,插入:
B27(isnan(B27))=0;
clear data2
data2 = B27;