location of element in matrix
Show older comments
I have a matrix mat and I want to find location of x in mat matrix.location should be in order of x.
mat =[
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
0.0099 1.0000 1.0000 0.0120 1.0000 0.0115
0.0093 1.0000 1.0000 0.0120 1.0000 0.0070
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
0.0098 1.0000 1.0000 0.0089 1.0000 0.0093
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000];
x =[
0.0089
0.0099
0.0070];
A =mat
C=x
numbersInA = unique(C)
numbersInC = unique(C)
for k = 1 : length(numbersInA)
[rowA colA] = find(A==numbersInC(k))
w(k,:)= [rowA , colA]
end
ans is [ 3 6]
[5 4]
[2 1]
but I need this solution::
[5 4]
[2 1]
[3 6]
Thanks in advance.
1 Comment
Do NOT use ismember ! See my answer for the reason why.
Accepted Answer
More Answers (2)
Stephen23
on 25 Apr 2017
3 votes
Do NOT use ismember
Those are floating point values. It would be an extremely bad idea to use ismember on floating point values, because ismember tests for equivalence of the values. Really bad idea:
Those values should be compared using a tolerance, or with ismembertol.
1 Comment
Andrei Bobrov
on 25 Apr 2017
+1
Azzi Abdelmalek
on 25 Apr 2017
0 votes
Use ismember function
Categories
Find more on Logical 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!