matlab
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
Related Links
What is the official Matlab way to plot the values of histcounts into a histogram with any normalization option?
Matlab - add custom check to model advisor
MATLAB: Retrieving GUI data from a loop
“Steepest Descent Help” — How to run steepest descent method?
Calculating Lyapunov Exponesnts for coupled system (jerk circuit)
Find the row/column of all maximum values in each row of a matrix
why Is blkdiag showing error?
Matlab get rbbox (ROI) in pixels of the image inside the figure
How to crop polygonal shape(showed in below image) in an image in MATLAB?
Resolve by dichotomy step size in steepest descent method in Matlab
Optimizing Matlab Code run time
Recovering time function from its single-sided spectrum + its Hermitian
Sum of values of Fields in Structure | Matlab
Creating a movie of histograms in matlab
Length scaling orientation data in MATLAB
Speeding up Octave / Matlab plot