calculate angle between 2 n-dimentional vectors with missing data
Afficher commentaires plus anciens
I have a matrix with the rows containing the n dimensions of 2 vectors. I want to calculate the angle of difference for each row. The issue I have is that some of the cells are missing and so I don't want either of the vectors values for that dimension in the row to go into the calculation.
Réponses (1)
So your matrix A is n x 2 and your the missing elements are NaNs? If so,
idx = all(~isnan(A),2); %EDITED
B=A(idx,:);
norms = prod(sqrt(sum(B.^2)));
dotprod= sum(prod(B,2));
result = acosd( dotprod/norms), %angleDiff
2 commentaires
Roger Stafford
le 31 Déc 2014
Matt, I think you mean
idx = all(~isnan(A),2);
Matt J
le 31 Déc 2014
Right you are, Roger. I've edited accordingly.
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!