calculate angle between 2 n-dimentional vectors with missing data

1 回表示 (過去 30 日間)
Brandon
Brandon 2014 年 12 月 30 日
コメント済み: Matt J 2014 年 12 月 31 日
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.

回答 (1 件)

Matt J
Matt J 2014 年 12 月 30 日
編集済み: Matt J 2014 年 12 月 31 日
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 件のコメント
Roger Stafford
Roger Stafford 2014 年 12 月 31 日
Matt, I think you mean
idx = all(~isnan(A),2);
Matt J
Matt J 2014 年 12 月 31 日
Right you are, Roger. I've edited accordingly.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGenomics and Next Generation Sequencing についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by