using find function

im having a problem to find the correct value that i desire. im trying to plot graph for beamwidth for uniform array. but, the problem is that when i use the find function to find the angles which has -3dB gain, there is an error. so, i rounded up the -3dB angles to make it easy to use the find function. then, the rounded is not accrurate and consist some undesired value. example: p=-3.0041 -3.2098 -3.2000. I rounded up the value and it makes the value to become p= -3 -3 -3. hence, it contains some undesired value and makes it complicate to plot the graph. can anyone help to overcome this problem.

답변 (2개)

Grzegorz Knor
Grzegorz Knor 2012년 2월 22일

0 개 추천

If I understand you correctly, try to round your vector roughly this way:
round(p*100)/100
or use find something like that:
find(abs(p-3)<0.001)

댓글 수: 1

Kugen Raj
Kugen Raj 2012년 2월 23일
hi grzegorz,
Thanks for your suggestion. I tried as your showed here. But, I still cannot overcome the problem.
Y=sum(y);
YY=abs(Y);
p=20*log10(YY/max(YY));%normalized power in dB.
P=nearest(p);
PP=find(abs(P-3)<0.0001);
if size(PP)==[1,0];
bw(count2)=0;
else
bw(count2)=PP(1,2)-PP(1,1);
end
I'm still finding if there is any other alternative way to overcome this issue.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Graph and Network Algorithms에 대해 자세히 알아보기

질문:

2012년 2월 22일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by