Finding the row and column number in a matrix

317 views (last 30 days)
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 Comment
Meryem
Meryem on 4 Sep 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

Sign in to comment.

Accepted Answer

Jan
Jan on 15 Mar 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 Comments
Raghuram
Raghuram on 26 Mar 2011
yea it works now, thank you :)

Sign in to comment.

More Answers (2)

Rajashree Jain
Rajashree Jain on 15 Mar 2011
[val row]=max(A(:));
[val col]=max(A(row,:));
[val row col];
  1 Comment
Jan
Jan on 15 Mar 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.

Sign in to comment.


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

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!