Matlab tformfwd和tforminv-什么';有什么区别?

Matlab tformfwd和tforminv-什么';有什么区别?,matlab,matrix,coordinate-transformation,inverse,Matlab,Matrix,Coordinate Transformation,Inverse,假设我有一个任意的变换矩阵,比如 A = 0.9966 0.0007 -6.5625 0.0027 0.9938 1.0598 0 0 1.0000 以及一组点,其x和y坐标分别由x和y表示 假设 [Xf Yf] = tformfwd(maketform('projective',A),X,Y); 现在, [Xff-Yff]和[Xfi-Yfi]似乎完全相同(它们应该是一样的) t forminv只是为了方便起见,

假设我有一个任意的变换矩阵,比如

A =

    0.9966    0.0007   -6.5625
    0.0027    0.9938    1.0598
         0         0    1.0000
以及一组点,其x和y坐标分别由
x
y
表示

假设

[Xf Yf] = tformfwd(maketform('projective',A),X,Y);
现在,

[Xff-Yff]
[Xfi-Yfi]
似乎完全相同(它们应该是一样的)


t forminv
只是为了方便起见,还是我遗漏了什么

我先说这是我最好的猜测

有可能在不实际形成逆矩阵的情况下执行变换。例如,可以用两种方法求解线性方程组:

x = inv(A)*b;
x = A\b;
根据的文档,第二个选项(使用矩阵除法运算符)可以“从执行时间和数值精度的角度”执行得更好,因为它“使用高斯消去法生成解,而不形成逆解”
tforminv
可能会执行类似的操作,因此与将逆矩阵传递给对象相比,会显示出更好的总体行为


如果你有这种倾向,你可能会尝试一些不同的变换矩阵,并测试这两种方法(
tforminv
tformfwd
inv
),看看结果有多准确,计算速度有多快。

这似乎适用于投影变换,但是其他转换类型呢(记住maketform可以接受用户定义的转换,因此逆变换并不总是对应于inv(a))?是的,我完全同意。但我只对这个场景感兴趣。谢谢,我一直在寻找答案。我已经测试了它们的准确性,它们都是一样的(我现在不关心速度,只关心准确性)。@雅各布:如果你使用的变换矩阵条件很差(即接近但不完全是单数),这两种方法可能显示不同的结果。
x = inv(A)*b;
x = A\b;