Borrar filtros
Borrar filtros

finding minimum value with index

10 visualizaciones (últimos 30 días)
JAVAD el 19 de Mzo. de 2023
Respondida: Amith el 28 de Mzo. de 2023
I have a matrix 3 dimensions. i,j,t(time). I try to find minimum for part of matrix when 85<j<170; 50<i<80 for each time step. In other words, the minimum of for all(one page).Also, I need in the location which i,j(index).
How can I do it?

Respuesta aceptada

Amith el 28 de Mzo. de 2023
As per my understanding you wanted to know how you can find the minimum value and their corresponding indices for a submatrix in the range for i=(86,169) and j=(51,79) for every time step. Below is the code provided for performing the same.
%defined the timesize as 10.
timesize = 10;
%generated a matrix of random numbers.
matrix = randn(80,170,timesize);
index_x = zeros(1,timesize);
index_y = zeros(1,timesize);
minvalues = zeros(1,timesize);
for time = 1:timesize
%takes a submatrix for that particular time step
A = matrix(51:79, 86:169, time);
%finds the minimum value and index but as linear indices.
[minimum_values, index] = min(A, [], [1 2],'linear');
%storing minimum values
minvalues(time) = minimum_values;
%converts linear indices into subscripts (i.e into actual i,j indices)
[row, col] = ind2sub(size(A), index);
%adding the starting index as we have taken submatrix and have done
%operations on that
index_x(time) = row+51-1;
index_y(time) = col+86-1;
disp(index_x) %gives the minimum values x index
disp(index_y) %gives the minimum values y index
disp(minvalues) %provides the minimum values for the each time instance

Más respuestas (0)


Más información sobre Matrices and Arrays en Help Center y File Exchange.


Community Treasure Hunt

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

Start Hunting!

Translated by