finding the max index in a moving window
I want to find the max element's index for a moving window. I tried to do it as the following (a simple example): x=[1,2,3,4,5,6,7,8,9]; [m,I]=max(x(1:5)) ans m=5 I=5 then if I say [m2,I2]=max(x(3:7)); I get ans m2=7 I2=5 I want a way to give me the index with reference to the original big vector not the subvector which was passed to the function (I want I2 to give me 7 not 5). Is there a way to do so? Thanks
You can do something like this: x = [2,5,6,8,4,5,10,33]; start_w = 4; end_w = 7; [m,I] = max(x(start_w:end_w)); I = I + start_w - 1; %reindex to x, so that x(I)==m
you can use sliding window operation to get the local max indexes and add the global window xenter indexes afterwards: function idx = maxidx(x) [~,idx] = max(x); and: x = [1,2,3,4,5,6,7,8,9,1,3]; % test array W = 5; % window width % moving max idx function -> local indexes B = colfilt(x,[1 W],'sliding',#maxidx); % index addition to convert local indexes to global addedIdx = (1:length(x)) - floor((W+1)/2); % add local indexes with global addition res = B + addedIdx res = 3 4 5 6 7 8 9 9 9 9 9
How to determine the index of a vector with range from 1
Store single value from each iteration for graphing
How to give label for cluster from GMM iteration?
Matlab ischar is not recognizing numbers
Bending a plane into a closed surface/cylinder
How to remove an alphabet from a list of numbers in Matlab?
Cumulative Sum with >=0 Restriction in Matlab
Average part of a multidimensional array based on another array (Matlab)
Why isn't this MATLAB class holding on to its properties?
Vector inputs when converting symbolic expression to function handler [Matlab]
Fitting a power law: “NaN computed by model function”
Error dimension mismatch MATLAB
MATLAB curve fitting for an arbitrary data set
Matlab: Assign weights to angle mesh values to get an Isotropic Field
Modifying lutx function in matlab
The fsolve matlab function not converging