【问题标题】:How do I turn a 2x3 matrix into a 3x3 matrix如何将 2x3 矩阵变成 3x3 矩阵
【发布时间】:2013-05-17 00:32:49
【问题描述】:

如果这是一个愚蠢的问题,我很抱歉,但我找不到我需要的答案。 我有以下矩阵:-

 A  |6 6 0|
    |9 0 0|

每一列代表网格上的坐标。 现在要找到“A”的倒数,我需要将其创建为一个 3x3 方阵,为此我将 001 添加为第三行...

 B  |6 6 0|
    |9 0 0|
    |0 0 1|

我这样做只是因为这是我在在线示例中看到的。

我的问题是,在这种情况下计算/添加 2x3 矩阵的第三行的方法是什么?

【问题讨论】:

  • 您使用什么语言/环境?它应该像创建一个填充了与矩阵一样长的零的行向量一样简单,将行向量中的最后一个数字设置为 1,然后将其附加到矩阵...
  • 我只是在使用一些简单的二维转换,除此之外我不确定你所说的环境是什么意思。好的,我总是将最后一个数字设置为 1 吗?
  • 我在问您使用的是什么工具? (matlab,八度等)是的,如果你总是只是在矩阵的底部添加一行,那么行中的最后一个数字应该总是 1,如果你实际做的是附加最后一行一个 3x3 单位矩阵。您能否链接到您正在遵循的示例?
  • 这是我自己的示例,但假设我将三角形绘制到具有上方坐标的图上 (A),然后将点矩阵 (A) 乘以变换矩阵 (1 0/0 -1)要实现在x轴上的反射,要反转这个操作我需要找到逆。因此问题。

标签: matlab math matrix matrix-inverse


【解决方案1】:

不能取非平方矩阵的逆。 我假设只想扩展矩阵以使 i 平方,您使用 [0 0 1] 的原因是为了使矩阵一致..

实际上,您的矩阵表示两个具有三个变量的方程..

A:

    6*x_1 + 6*x_2 + 0*x_3 = 0
    9*x_1 + 0*x_2 + 0*x_3 = 0

这不一致 但是通过添加你得到的最后一行

B:

    6*x_1 + 6*x_2 + 0*x_3 = 0
    9*x_1 + 0*x_2 + 0*x_3 = 0
    0*x_1 + 0*x_2 + 1*x_3 = 0

这个矩阵以梯形形式存在

[1 0 0]
[0 1 0]
[0 0 1]

所以通过添加最后一行,您不会更改矩阵

您只需将其减少到即可正确获得相同的结果

[6 6]
[9 0]

【讨论】:

    【解决方案2】:

    这是一个简单的方法:

    s = size(A);
    B = eye(max(s));
    B(1:s(1),1:s(2)) = A
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      相关资源
      最近更新 更多