Find the transformation matrix
32 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
reincornator
le 1 Juil 2021
Commenté : John D'Errico
le 1 Juil 2021
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 commentaires
Réponse acceptée
John D'Errico
le 1 Juil 2021
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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!