【问题标题】:ode45 error, index out of bounds because numel(x)=1ode45 错误,索引超出范围,因为 numel(x)=1
【发布时间】:2015-03-19 10:36:22
【问题描述】:
    function xx = test(x, t)


   xx(1) = x(2);
   xx(2) = x(3) * cos(x(4) + x(1));
   xx(3) = 0;
   xx(4) = 0;

end

这是我的脚本,不知道为什么会出现此错误。

【问题讨论】:

  • xx 是你的输出吗?可能你的意思是xx(1) = x(2); 等等。也最好预先分配xx

标签: matlab ode


【解决方案1】:

ODE suites 的右侧将参数作为(t,x) 传递,其中t 始终是标量。 所以你的函数签名应该是

function xx = test(t,x)

【讨论】:

  • 做到了,我正在从一个八度音阶改编这个脚本,其中一切都颠倒了,错过了那个。谢谢你。我怎样才能让它返回一个列向量?
  • @excelhelp 您需要明确分配它:xx(4,1) = 0。然后所有具有单个索引的引用都将引用列向量的行。
  • 会试一试,谢谢。谁知道从 lsode 到 ode45 会这么麻烦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多