为啥 MATLAB 在使用 ode 求解器时会更改矩阵维度?
Posted
技术标签:
【中文标题】为啥 MATLAB 在使用 ode 求解器时会更改矩阵维度?【英文标题】:Why does MATLAB change the matrix dimensions when using an ode solver?为什么 MATLAB 在使用 ode 求解器时会更改矩阵维度? 【发布时间】:2012-11-01 19:42:03 【问题描述】:我已经为一些运行良好的嵌套 for 循环编写了一些代码。它使用列向量、行向量和 3x2 矩阵的组合,但所有维度都是一致的。现在,当我将这些循环作为微分方程放入并使用ode15s
时,突然间即使对于 t 的单次迭代它也不起作用。它说
"试图访问 MP(2,1);索引超出范围,因为 大小(MP)=[1,6]"
实际上 MP 应该是一个 3x2 矩阵,当然是当我在没有 ode 求解器的情况下测试代码时。有谁知道导致矩阵维度改变的 ode 求解器有什么不同?
任何帮助将不胜感激, 提前致谢!
【问题讨论】:
【参考方案1】:ode
例程假定向量输入 y0
(1xn
) 并给出向量输出 y
。在调用ode15s
之后,您可以立即转换回矩阵,例如使用y = reshape(y,[3 2]);
和您的其余代码应该可以工作。
【讨论】:
谢谢你,这很有帮助!这对我了解正在发生的事情很有帮助。以上是关于为啥 MATLAB 在使用 ode 求解器时会更改矩阵维度?的主要内容,如果未能解决你的问题,请参考以下文章