无法执行赋值,因为左侧的大小为 1×2,右侧的大小为 2×2。 出错 euler_wilson (第 9 行) x(n+1, :) = x(n, :) + h * (1-theta) * f(t(n), x(n, :)) ...
时间: 2024-02-29 11:52:51 浏览: 51
2D-Euler_
这个错误提示是因为在 `euler_wilson` 函数中,`x` 的初始值 `x0` 应该是一个长度为 2 的向量,而不是一个 $1 \times 2$ 的矩阵。请检查一下你的代码,看看是否在调用 `euler_wilson` 函数时,`x0` 的大小有误。如果你的 `x0` 是一个 $1 \times 2$ 的矩阵,可以将其转换成一个长度为 2 的向量,例如:
```matlab
x0 = [0; 0]; % 将 x0 转换成一个列向量
```
或者也可以在 `euler_wilson` 函数中对 `x0` 进行转换:
```matlab
x(1, :) = x0(:).'; % 将 x0 转换成一个行向量
```
这样就可以保证 `x0` 是一个长度为 2 的向量,从而解决这个错误。
阅读全文