Borrar filtros
Borrar filtros

Finding the row and column number in a matrix

163 visualizaciones (últimos 30 días)
Raghuram
Raghuram el 15 de Mzo. de 2011
Comentada: Meryem el 4 de Sept. de 2014
for a matrix [1 2 3 4 6 10 7 5 9] mXn matrix-- how is it that i can find the min or max element and then find the row number and the column number for further use in calculations
  1 comentario
Meryem
Meryem el 4 de Sept. de 2014
You can have an answer with a few lines of code which is:
%you have ndata matrix
[r,c] = size(ndata); %get row and column values of data matrix
fprintf('\nRow of data matrix is: %d' ,r); %print number of row
fprintf('\nColumn of data matrix is: %d ' ,c); %print number of column

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 15 de Mzo. de 2011
data = rand(5, 3);
[maxNum, maxIndex] = max(data(:));
[row, col] = ind2sub(size(data), maxIndex);
Another less compact approach finds the max values for each column at first:
data = rand(5, 3);
[maxNumCol, maxIndexCol] = max(data);
[maxNum, col] = max(maxNumCol);
row = maxIndexCol(col);
Please read "help max" also.
  13 comentarios
Walter Roberson
Walter Roberson el 26 de Mzo. de 2011
Don't use size(f(:)), use size(f)
Raghuram
Raghuram el 26 de Mzo. de 2011
yea it works now, thank you :)

Iniciar sesión para comentar.

Más respuestas (2)

Rajashree Jain
Rajashree Jain el 15 de Mzo. de 2011
[val row]=max(A(:));
[val col]=max(A(row,:));
[val row col];
  1 comentario
Jan
Jan el 15 de Mzo. de 2011
This will not work. In the first line you can get e.g. the last element of A as maximum, then "row==numel(A)". Then "A(row, :)" will fail.

Iniciar sesión para comentar.


Amey
Amey el 15 de Mzo. de 2011
The first answer given by Jan Simon is absolutely right and the most efficient way to do it.

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by