searching for vector values in a matrix
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ahmed Alnahdi
am 28 Apr. 2015
Kommentiert: Ahmed Alnahdi
am 28 Apr. 2015
Hi, I have a vector with 3 specific values and I want to find their indices in a matrix.
1 Kommentar
James Tursa
am 28 Apr. 2015
What are the dimensions of the matrix? Do the values have to be next to each other in the same row or column?
Akzeptierte Antwort
Mohammad Abouali
am 28 Apr. 2015
Bearbeitet: Mohammad Abouali
am 28 Apr. 2015
% 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(:))
Weitere Antworten (1)
Image Analyst
am 28 Apr. 2015
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);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!