how to range data and find maximum value for each range by using loop

I have data (AB) consisting of two columns. The number of rows of this data is 80315. I want to divide this number into (1: 2000: 80315) and take the maximum values for each period (based on the second column, also i want to index the firt colum).
I using this code but its very long.
a = AB([1:2000],:);
aa=max(a);
a1 = AB([2000:4000],:);
aa1=max(a1);
a11 = AB([4000:6000],:);
aa11=max(a11);
maxvalues=([aa;aa1;aa11])

댓글 수: 2

According to your code, you want to get maximum value for each period, what do you mean by second column?
i mean the output will be 2 coluoms not 1

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

 채택된 답변

Pooja Kumari
Pooja Kumari 2022년 6월 29일
편집: Pooja Kumari 2022년 6월 29일
It is my understanding that you are facing issues with huge vector and instead of hardcoding, you want a generalized form of code for taking the maximum value for your data for each period by taking 2000 data at a time out of 80315 rows of data.
Please find below an example code for the same with random dataset of 80315 rows and 2 columns:
data = rand(80315,2); %data
index = 1;
for i = 1:1999:80315-1999
array_data = data(i:i+1999,:); %data is divided into %2000 samples at a time.
output(index,1) = max(array_data(:)); %taking max of all values in a period
index = index +1;
end
For more information on array indexing, you can refer to the below link:
Sincerely,
Pooja Kumari

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Mathematics에 대해 자세히 알아보기

제품

릴리스

R11.1

Community Treasure Hunt

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

Start Hunting!

Translated by