-3

使用程序时出现以下错误MATLAB

Error using - Matrix dimensions must agree

我注意到我试图相互减去的矩阵的大小是:

firstMatrix --> 425x356

secondMatrix --> 426x356

我怎样才能使它们大小相等并继续进行减法过程?

我试过reshape了,但这里的元素数量似乎必须相等。

谢谢。

4

3 回答 3

2

我认为这两个答案都缺少关键点。轻率地减去两个不同大小的数组会忘记这些数组不仅仅是数字。这些数字一定意味着什么。否则,它们只是毫无意义。

同样,简单地从开头或结尾删除一行很可能是错误的,或者用零填充。只有您知道这些数字的含义,以及为什么这些数组的大小不同。所以只有你可以决定什么是正确的行动。

填充、删除、插值、做任何这些事情可能是正确的。或者您可能会意识到创建这些数组的代码中存在错误。

于 2013-09-01T18:27:28.847 回答
1

你的矩阵有不同数量的元素,所以在reshape这里使用没有意义(因为它保持元素的总数)。在进行减法之前,您必须丢弃较大矩阵中的一行:

例如,您可以丢弃最后一行:

firstMatrix - secondMatrix(1:end - 1, :)

或丢弃第一行:

firstMatrix - secondMatrix(2:end, :)

或者,您可以使用默认值(例如 或零)填充较小的矩阵,NaN如另一个答案中所建议的那样。

于 2013-09-01T16:19:44.087 回答
1

你错过了一行firstMatrix

所以可以试试:

firstMatrix=[firstMatrix;zeros(1,356)];

firstMatrix这将在使其结束时添加一行零426x356

于 2013-09-01T16:19:55.510 回答