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
Load .mat file from inside function
Downsample number of colors
fMRI data: What is the best way to access BOLD values associated with a specific brain region using MATLAB?
Extracting a part of a sparse matrix is extremely slow
Plotting a closed interal function MATLAB
Matlab - Plot sequence of matrices
matlap GMM of multivariate distibutions
Why does fprintf command display >> in MATLAB?
How to read, and perform a certain command for multiple files for multiple different folders
Matlab solve linear system with condition to x
What is wrong with my implementation of RMSE?
Octave - logsig transfer function
Segmentation referring only to one of the RGB channels
plot a hi res compass rose in matlab
matlab bytesAvailableCallback with empty buffer
How to measure spectrum envelope in matlab