matlab在运行“ F(:, :, j) = G(:, :, j) - mu * (weight(:, :, j) .* G(:, :, j) ./ M);”提示出现“无法执行赋值,因为左侧的大小为 1889×1889,右侧的大小为 1889×1889×1×18。”,应该怎么修改
时间: 2024-02-28 19:57:12 浏览: 149
根据提示,左侧的大小为 1889×1889,右侧的大小为 1889×1889×1×18,说明左右两侧的数组维度不匹配,无法直接进行赋值操作。
你可以使用循环来逐个处理 G 的第三维数据,然后将结果存储到 F 中的对应维度中。修改后的代码如下:
```
for j = 1:size(G, 3)
F(:, :, j) = G(:, :, j) - mu * (weight(:, :, j) .* G(:, :, j) ./ M);
end
```
这样就可以逐个处理右侧的 1889×1889×1×18 数组,将结果存储到左侧的 1889×1889×18 的数组 F 中的对应维度中。
阅读全文