Effacer les filtres
Effacer les filtres

How to find the position of a real vector in a matrix?

5 vues (au cours des 30 derniers jours)
Cantor Set
Cantor Set le 6 Mar 2020
Modifié(e) : dpb le 7 Mar 2020
I do have a very big matrix of real numbers, I need a function that takes a vector as input and returns its position in the matrix.
An example:
A =[
0.7081 0.0797 0.1418 0.5849 0.1305
0.0738 0.4849 0.5060 0.8479 0.5003
0.8723 0.1511 0.6346 0.0683 0.7673
0.2021 0.4461 0.7313 0.7355 0.4157
0.7050 0.8435 0.8158 0.2139 0.8008]
Suppose I want to find the position of
v=[ 0.7081 0.0797 0.1418 0.5849 0.1305]
in A
How can I do it?
I edited the question
  2 commentaires
Walter Roberson
Walter Roberson le 6 Mar 2020
You cannot. Those values do not exist in the matrix.
You need to give the command
format long g
And then display A again.
Cantor Set
Cantor Set le 6 Mar 2020
Sorry, I edited the question

Connectez-vous pour commenter.

Réponses (2)

dpb
dpb le 6 Mar 2020
>> find(ismember(A,v,'rows'))
ans =
1
>>
works here, but in general for floating point values
>> find(ismembertol(A,v,2*eps,'byrows',1))
ans =
1
>>
is more robust and will avoid surprises.
  2 commentaires
Cantor Set
Cantor Set le 6 Mar 2020
I tried it on a very big matrix of real numbers it returned
ans =
Empty matrix: 0-by-1
dpb
dpb le 7 Mar 2020
>> find(ismembertol(w,c,2*eps,'byrows',1))
ans =
1
>>

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 6 Mar 2020
Dists = pdist2(A, v);
[mindist, rowidx] = min(Dists) ;
if mindist > some_tolerance
error('row not found') ;
end
  3 commentaires
dpb
dpb le 7 Mar 2020
Modifié(e) : dpb le 7 Mar 2020
Shouldn't w/ the given example data...altho suppose it's possible with the real data instead of that rounded off in the pasted text instead of actual data from memory.
>> D=pdist2(w,c);
>> [minD,ixMin]=min(D)
minD =
0
ixMin =
1
>>
With the rounded data from the posting it's identically zero.
Did you look at what was returned at all or just complain...
Walter Roberson
Walter Roberson le 7 Mar 2020
Please attach your w and c in a .mat

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by