why this line gives error?

1 view (last 30 days)
Sadiq Akbar
Sadiq Akbar on 23 Jul 2021
Answered: Image Analyst on 24 Jul 2021
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);

Answers (2)

Yazan on 23 Jul 2021
Edited: Yazan on 23 Jul 2021
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.
Sadiq Akbar
Sadiq Akbar on 24 Jul 2021
Thank you for your response. Yes you are right, but since my file is in GBs, so cannot upload it.

Sign in to comment.

Image Analyst
Image Analyst on 24 Jul 2021
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