Find maximum value of array within specified range, consecutively
조회 수: 5 (최근 30일)
이전 댓글 표시
I have a 3384x5 array of which the first and last 20 rows are shown in the pictures below.
Problem: I want to find the maximum value of column 3 within the specified range of column 2.
Problem example:
In the 2th column I have specified a range from 0.0 until 0.011.
Within this range of the 2th column I go to the 3th column. In the 3th column I search for the maximum value which corresponds to the value of the 2th column.
When the maximum value in the 3th column has been found with the corresponding value of the 2th column, than there will be a new range specified in the 2th column. The new range will be from 0.011 until 0.022, so the range increases with 0.011 every time.
Within the new range (0.011 until 0.022) I go again to the 3th column and search for the maximum value with the corresponding value of the 2th column
This loop continues until the last possible range in the 2th column is reached.
Result: All the maximum values found with the corresponding value of the 2th column have to be stored in a new array or matrix.
Until now I have not been able to solve this problem. Any solution and/or help would be very appreciated.
댓글 수: 0
채택된 답변
Cris LaPierre
2020년 8월 22일
Assuming you know the ranges a priori, something like this might work. Note that I haven't tested this as I'm not going to try to transcribe your data.
% Define edges of ranges
rng = 0:0.011:0.2090
% Assign the data in column 2 to a predefined range
G = discretize(data(:,2),rng);
% Find the max value in each range
rMax = splitapply(@max,data(:,3),G)
댓글 수: 6
gowtham balu
2021년 11월 25일
편집: gowtham balu
2021년 11월 25일
for each 0.5 secondsin x axis I want to find the corresponding load value in the y-axis(2nd column)
sorry 10k cycles and 1000000 rows
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!