减去不等维的矩阵

时间:2014-05-19 18:45:42

标签: matlab matrix

当我尝试执行以下命令时,出现错误。

err = sqrt(mean((xi256-xc256).^2))

我知道矩阵大小不同。

whos xi25​​6 xc256`给出:

  Name         Size            Bytes  Class     Attributes

  xc256       27x1               216  double              
  xi256      513x1              4104  double              

我应该否定找到这两个矩阵的区别。事实上,顶部给出的命令是在课程笔记中,课程已经运行了几年!我已经尝试使用谷歌搜索方法解决此错误以执行此减法,但无法找到解决方案。也许其中一个矩阵可以缩放以匹配另一个矩阵的尺寸?但是,我还没有找到任何可以让我这样做的功能。

我需要在给定的数据集中找到RMS错误。 xc256是通过数值方法计算的,xi256给出了真值。

编辑:我能够使用另一组结果。

2 个答案:

答案 0 :(得分:0)

首先检查xc256是否正确计算,并且没有矩阵转置错误或类似的东西。计算两个不同大小的向量之间的RMS是没有意义的,填充或复制将使您摆脱错误,但很可能不是您真正想要的。

答案 1 :(得分:0)

我只能想到两种情况,我会在这里列出:

  1. 这条线是错误的(不太可能,因为它看起来很正常,但一定要查看书!)
  2. 该行的输入错误
  3. 假设它在第2点,又有两种可能性:

    1. xi256的大小不正确(可能这取决于你如何得到它)
    2. xc256尺寸不正确
    3. 假设它再次成为第2点,还有两种可能的可能性:

      1. xc256应该是标量
      2. xc256应该是与xi256
      3. 大小相同的向量

        从这里开始,没有足够的信息可以继续,但要检查你是否意外地将它做了27倍,或者在某个地方做了19倍。只需在整个代码中使用一些断点即可了解大小的变化。