필터 지우기
필터 지우기

Find all the peaks higher than this threshold and save the corresponding range in a variable.

조회 수: 7 (최근 30일)
I have two plots on the same graph. The blue one is the MaxPerRangeBin and the red one is CfarThold.
I want to locate the peaks in blue which are higher than the red plot.
I have used islocalmax to locate all the peaks in MaxPerRangeBin , which is the logic I have to apply. Now, I have to just find out all the peaks which are just greater than red plot i.e. CfarThold.
I am sharing the snippet, along with the graph.
TF = islocalmax(data(i).MaxPerRangeBin,2);
aa(num_values,:) = data(i).MaxPerRangeBin(num_values,:);
peakvalue_MPRB = aa(TF(num_values,:));
  댓글 수: 3
Sara Nasir
Sara Nasir 2022년 3월 23일
files = dir('*.mat');
data = struct();
for i = 1:length(files)
result = load([files(i).folder,'\', files(i).name]);
for num_values= 1:length(result.data)
data(i).scanindex(num_values,:) =( result.data(num_values).ScanIndex);
data(i).MaxPerRangeBin(num_values,:) = result.data(num_values).MaxPerRangeBin;
data(i).CfarThold(num_values,:) = result.data(num_values).CfarThold;
% extracting peaks
TF = islocalmax(data(i).MaxPerRangeBin,2);
aa(num_values,:) = data(i).MaxPerRangeBin(num_values,:);
peakvalue_MPRB = aa(TF(num_values,:));
end
plot(data(i).MaxPerRangeBin(1,:)); % Blue plot
hold on;
plot(data(i).CfarThold(1,:)); % Red plot
end
Image Analyst
Image Analyst 2022년 3월 23일
Again, can you attach the data? You forgot to attach any .mat files with the paperclip icon.

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

채택된 답변

Star Strider
Star Strider 2022년 3월 23일
Possibly:
idxv = 1:numel(data(i).MaxPerRangeBin(1,:)); % Index Vector
Lv = (data(i).MaxPerRangeBin(1,:)) >= (data(i).CfarThold(1,:)); % Logical Vector
TF = islocalmax(data(i).MaxPerRangeBin(1,Lv)); % Peaks Logical Vector
TFidx = find(TF); % Numeric Indices
PeakIndices{i} = TFidx; % Save Peak Index Values
.
  댓글 수: 4
Sara Nasir
Sara Nasir 2022년 3월 23일
Thank you Star Strider for the help. I was able to save the values in a structure.
all_peaks = uu( TF(num_values,:));
sorted_peaks = sort(all_peaks,'descend');
data(num_values).result = sorted_peaks; % saving to struct
c = ismember(Thold, sorted_peaks); % extracting x-values
[ data(num_values).scan_value, data(num_values).bins] = find(c);

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Descriptive Statistics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by