Find the transformation matrix
58 ビュー (過去 30 日間)
古いコメントを表示
How to find the transformation matrix in MATLAB?
For example:
x1=[1;2];
x2=[4;5];
y1=[3;4];
y2=[2;1];
y1=S*x1;
y2=S*x2;
where S=[s1 s2; s3 s4]
Which function will help you find S?
upd №1: I know how to do it on a piece of paper. But maybe there is a standard function in MATLAB.
0 件のコメント
採用された回答
John D'Errico
2021 年 7 月 1 日
First, learn to use matrices, NOT numbered variables. Assuming that you have a matrix X, and a matrix Y, with x1 x2, y1, y2 as columns...
x1=[1;2];
x2=[4;5];
y1=[3;4];
y2=[2;1];
X = [x1,x2];
Y = [y1,y2];
then ONLY if the matrix X is non-singular does a solution exist. So is X singular? It must be of full rank if it is non-singular, or a small condition number.
rank(X)
cond(X)
So X is non-singular. In that case,
format long g
S = Y/X
Does S work? Of course. I could also have written it as S = Y*inv(X), but Y/X is a better choice in MATLAB.
norm(Y - S*X)
So effectively zero, only floating point trash remains.
4 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!