why this line gives error?

3 次查看(过去 30 天)
Sadiq Akbar
Sadiq Akbar2021-7-23
回答: Image Analyst ,2021-7-24
I have a code in which there is an error:
212 % Range
213 Range_hat(1) = Ranges(snapstart(1));
214 Rangebin_hat(1) = RangeBins(Ranges == Range_hat(1));
215 % DOA
216 [betapks,DOAidx] = findpeaks(beta(snapstart(1),80:end)); % a possible DOA range is applied 1 ~ 101 degrees
218 [betapks,id_temp] = sort(betapks,'descend');
219 DOAidx = DOAidx(id_temp)+79;
220 beta_pks(1) = betapks(1);
221 DOA_hat(1) = theta(DOAidx(1));
After running , the above section gives the following error:
Index exceeds the number of array elements (0).
Error in DataA_main1 (line 220)
beta_pks(1) = betapks(1);

回答(2 个)

Yazan 2021-7-23
编辑:Yazan 2021-7-23
It seems that the findpeaks function could not find a peak, so it returned an empty vector. Check your signal, or specify some parameters for findpeaks.
  5 个评论
Sadiq Akbar
Sadiq Akbar 2021-7-24
Thank you for your response. Yes you are right, but since my file is in GBs, so cannot upload it.


Image Analyst
Image Analyst 2021-7-24
Can't you crop out a portion of it that demonstrates the error and upload that?
What are these values? Put in this code after findpeaks()
sizeOfBeta = size(beta) % Don't use a semicolon
fprintf('snapstart(1) = %f.\n', snapstart(1));
if isempty(betapks)
fprintf('There were no peaks found!\n');
uiwait(warndlg('There were no peaks found!'));
What do you see?

Community Treasure Hunt

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

Start Hunting!

Translated by