还是提示“rhs = AT.*x(:) + lamb*dadivp(:,:) - lambda*divq(:,:);”的数组大小不兼容
时间: 2024-03-04 22:54:23 浏览: 82
ETSI TS 101 539-1 V1.1.1 (2013-08)
抱歉,我的回答有误。在修改“x = reshape(B(:, 1), [], c);”为“x = reshape(B, m, n, []);”后,应该将“rhs = AT.*B(:,:) + lambda*divp(:,:) - lambda*divq(:,:);”改为“rhs = AT*x(:) + lambda*divp(:,:) - lambda*divq(:,:);”,这里使用的是向量化的方式,将`x`转换为向量后再进行运算。
如果还是提示数组大小不兼容的话,你需要检查一下`AT`、`x`、`divp`和`divq`的维度是否正确,尤其是`AT`和`x`的维度是否相符,因为这两个矩阵相乘的结果是一个向量,需要保证向量的长度和`rhs`的长度相同。
你可以在出现错误的地方加上断点,然后逐步调试,查看每个变量的大小和维度,找到错误的原因。
阅读全文