필터 지우기
필터 지우기

searching for vector values in a matrix

조회 수: 3 (최근 30일)
Ahmed Alnahdi
Ahmed Alnahdi 2015년 4월 28일
댓글: Ahmed Alnahdi 2015년 4월 28일
Hi, I have a vector with 3 specific values and I want to find their indices in a matrix.
  댓글 수: 1
James Tursa
James Tursa 2015년 4월 28일
What are the dimensions of the matrix? Do the values have to be next to each other in the same row or column?

댓글을 달려면 로그인하십시오.

채택된 답변

Mohammad Abouali
Mohammad Abouali 2015년 4월 28일
편집: Mohammad Abouali 2015년 4월 28일
% Creating a sample matrix
yourMatrix=reshape(1:15,5,3)
yourMatrix =
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15
% Creating a sample vector with three values.
yourVector=[1,7,14];
% Now getting the row and cols of those values.
[rows, cols]=ind2sub( size(yourMatrix), ...
arrayfun(@(v) find(yourMatrix==v), ...
yourVector(:)) )
rows =
1
2
4
cols =
1
2
3
The rows and cols of 1,7,14 (the three specific values) are provided. If you are looking only for linear index number then just run:
linIndex=arrayfun(@(v) find(yourMatrix==v), yourVector(:))

추가 답변 (1개)

Image Analyst
Image Analyst 2015년 4월 28일
If yourVector is an integer valued vector or a floating point vector with values that are multiples or divisors of 2, then try
firstIndex = find(yourVector == firstSpecificValue);
secondIndex = find(yourVector == secondSpecificValue);
thirdIndex = find(yourVector == thirdSpecificValue);

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by