find Maximum values in intervals of time(each 2000 values)

2 Ansichten (letzte 30 Tage)
hi
I have a raw of 240001 values. I want to find Maximum values in every 2000 data with its time index.
u= 1 * 240001
t=1 * 240001
max of u[1-2000]? t index ?
max of u[2001-4000] ? t index?
....
thanks for helping me.

Akzeptierte Antwort

Star Strider
Star Strider am 28 Okt. 2022
It would help to have the data.
Try something like this —
u = randn(1, 24001);
t = 1:numel(u);
r = 2000;
U = zeros(r,ceil(numel(u)/r));
U(1:numel(u)) = u; % 'U' Matrix
T = zeros(r,ceil(numel(t)/r));
T(1:numel(t)) = t; % 'T' Matrix
[max2000,idx] = max(U);
for k = 1:size(U,2)
t2000(k) = T(idx(k),k);
end
max2000
max2000 = 1×13
3.5442 3.4805 3.3493 3.7120 4.4885 2.9583 2.9585 3.1143 3.7602 3.0909 3.3839 3.2174 1.5598
t2000
t2000 = 1×13
1161 3914 4518 7332 9805 10305 12787 15740 17991 19423 20578 23642 24001
.

Weitere Antworten (1)

Florian Bidaud
Florian Bidaud am 28 Okt. 2022
Hi,
I would do something like that
for i = 1:(length(u)-1)/2000
maxArray(i) = max(u((i-1)*2000+1:i*2000));
end
You'll have to adjust for the last value to include the 240001st value, your last interval would be [238001:240001] instead of [238001:240000]

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by