使用时出错 - 矩阵尺寸必须一致

时间:2013-09-01 16:16:10

标签: matlab matrix size equals subtraction

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

Error using - Matrix dimensions must agree

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

firstMatrix --> 425x356

secondMatrix --> 426x356

如何使它们具有相同的尺寸并继续进行减法处理?

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

感谢。

3 个答案:

答案 0 :(得分:2)

我认为两个答案都没有找到关键点。盲目地减去两个不同大小的数组会忘记那些数组不仅仅是数字。数字必须意味着什么。否则,它们就没有意义了。

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

填充,删除,插入,执行任何这些操作可能是正确的。或者您可能会发现代码中存在创建这些数组的错误。

答案 1 :(得分:1)

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

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

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

或弃掉第一行:

firstMatrix - secondMatrix(2:end, :)

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

答案 2 :(得分:1)

您在firstMatrix

中遗漏了一行

所以可以尝试:

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

这会在firstMatrix末尾添加一行零,使其成为426x356