matlab 用find函数,返回矩阵为空,求解答

问题出在第四和第五行,usus在ii等于3的时候,输出1.1,但是mn输出为Empty matrix: 0-by-1。但是当我手动将第五行中的usus改为1.1时,却能输出mn. 请问我这个地方用错了吗?

if aabb(ii,5)>1

ff=find(aabb(1:ii-1,4)==aabb(ii,4));

if isempty(ff)

usus = (aabb(ii,1)-0.1)

mn = find(aabb(:,1)==usus)

ts(ii)=te(mn);

te(ii)=ts(ii)+aabb(ii,3);

aabb(ii,6)=ts(ii);

aabb(ii,7)=te(ii);

else

ss=aabb(ii,1)-0.1;

nn=find(aabb(1:ii,1)==ss);

abab=te(nn);

kk=find(aabb(1:ii-1,4)==aabb(ii,4));

pp=size(kk);

cdcd=te(kk(pp(1,1)));

hh=max(abab,cdcd);

rr=hh;

ts(ii)=rr;

te(ii)=ts(ii)+aabb(ii,3);

aabb(ii,6)=ts(ii);

aabb(ii,7)=te(ii);

end;

end;

可能是matlab的一个重要bug引起,主要是使用==时没有考虑到数据精度的问题,一般可以改为>=&<=,改为mn = find(aabb(:,1)>=usus&aabb(:,1)<=usus)试试,如果不对再说吧。
温馨提示:答案为网友推荐,仅供参考
相似回答