使用MATLAB
程序时出现以下错误:
Error using - Matrix dimensions must agree
我注意到我试图相互减去的矩阵的大小是:
firstMatrix --> 425x356
secondMatrix --> 426x356
如何使它们具有相同的尺寸并继续进行减法处理?
我尝试了reshape
,但这里的元素数量似乎必须相等。
感谢。
答案 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