Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

zscore() kills vrrotvec()?

조회 수: 1 (최근 30일)
Gabor Bekes
Gabor Bekes 2016년 9월 14일
마감: MATLAB Answer Bot 2021년 8월 20일
Try the following: create an n x 3 matrix with randn(). Apply some oblique rotation to each of its rows.
a1 = randn(100,3);
a2 = (rot_mat*a1')';
Now, use vrrotvec() and vrrotvec2mat() to calculate which rotation matrix was used.
for ii = 1:100
rm1{ii} = vrrotvec2mat(vrrotvec(a1(ii,:),a2(ii,:)));
end
Now, visualize the created rotations somehow. You will see that the matrices vrrotvec() provided are not exactly close to each other (okay, they are completely off). Try shifting the means and increasing the standard deviation, for example like this:
a1 = bsxfun(@plus,a1,[0,5,10]);
a1 = bsxfun(@times,a1,[1,2,3]);
(You can also check the results with mean() and std().) If you repeat your matrix visualization (or compare numerically, like reshape them to row vectors and use uniquetol()), you will see that the accuracy of rotations given by vrrotvec() drastically improved. I presume this is some numerical issue.
Any comments, suggested workarounds are appreciated.

답변 (0개)

이 질문은 마감되었습니다.

제품

Community Treasure Hunt

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

Start Hunting!

Translated by