Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Question regarding matrix index

조회 수: 5 (최근 30일)
jana
jana 2014년 5월 28일
마감: MATLAB Answer Bot 2021년 8월 20일
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!

답변 (3개)

Sven
Sven 2014년 5월 28일
편집: Sven 2014년 5월 28일
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
jana
jana 2014년 5월 28일
but I want the index of the minimum value in the last column, not the entire matrix
Sven
Sven 2014년 5월 28일
I updated the answer to show how to only consider the last column. Did that get the answer for you?

Image Analyst
Image Analyst 2014년 5월 28일
편집: Image Analyst 2014년 5월 28일
[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, :));

Geoff Hayes
Geoff Hayes 2014년 5월 28일
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.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by