MATLAB Answers

Question regarding matrix index

1 view (last 30 days)
jana
jana on 28 May 2014
Edited: Image Analyst on 28 May 2014
Hi,
I've a following matrix:
[1 2 3 4 5;
3 inf 5 7 inf;
5 6 7 inf inf;
2 3 4 9 1]
I wanted to find the minimum element from the last column with its row and column. So my answer to the above matrix should be 1 (as it is the minimum in column 5), row = 4, column = 5. I dont know how to code this. Please help!

  0 Comments

Sign in to comment.

Answers (3)

Sven
Sven on 28 May 2014
Edited: Sven on 28 May 2014
Hi jana,
Try this:
X = [1 2 3 4 5;
3 inf 5 7 inf;
5 6 7 inf inf;
2 3 4 9 1]
[val, rowNum] = min(X,1) % Take the minimum in 1st dimension (columns)
val =
1 2 3 4 1
rowNum =
1 1 1 1 4
As you can see, the minimum value of each column is in val, and the row that it corresponds to is in the rowNum variable.
To get only the last (end) column you can use:
[val, rowNum] = min(X(:,end))
val =
1
rowNum =
4

  2 Comments

jana
jana on 28 May 2014
but I want the index of the minimum value in the last column, not the entire matrix
Sven
Sven on 28 May 2014
I updated the answer to show how to only consider the last column. Did that get the answer for you?

Sign in to comment.


Image Analyst
Image Analyst on 28 May 2014
Edited: Image Analyst on 28 May 2014
[minValueInLastCol, rowOfMin] = min(yourMatrix(:, end));
Or if you want the min in the last row (just for completeness in case you're interested):
[minValueInLastRow, colOfMin] = min(yourMatrix(end, :));

  0 Comments

Sign in to comment.


Geoff Hayes
Geoff Hayes on 28 May 2014
If Z is your matrix from above, just do:
[minVal,minIdx] = min(Z(:,end));
This will return the minimum value in minVal and its index in that column in minIdx:
minVal =
1
minIdx =
4
You already know the column number (5, since last one) and the row number is simply minIdx.

  0 Comments

Sign in to comment.

Tags