You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB调用plot命令时报向量长度不一致错误排查

报错原因定位与修正方向

这个Vectors must be the same length报错确实是代码逻辑不匹配导致的,具体问题点和修正方向如下:

直接触发报错的长度不匹配来源

  • 先核对各向量的实际长度:
    欧拉-丸山求解器输出的时间向量t、数值解向量Y的长度都是b+1=6(从t=0到t=1按0.2步长采样,共6个点),这部分实现逻辑没有问题。
    问题出在精确解ExactY的计算:当前代码直接用randn_numbers返回的W代入公式(2^(1/5)+(1/2)*W).^3计算结果,但randn_numbers输出的W和输入求解器的deltaW长度一致——也就是对应5个时间步的布朗运动累计增量,没有包含t=0时刻的初始采样点,总长度仅为5,和t、Y的6个点长度对不齐,直接触发plot的长度校验报错。
  • 对应修正方式:
    对W做长度校准:t=0时刻布朗运动的取值固定为0,需要在W的开头拼接初始值0,让它的长度和时间向量t对齐为b+1个点,再代入精确解的公式计算。

后续需要注意的连带逻辑问题

  • 你当前写的精确解和自定义的漂移、扩散项并不匹配:现有F=@(t,y) y^(1/2); G=@(t,y) 2*y对应的随机微分方程,解析解并不是你写的三次方形式,就算解决了长度不匹配的问题,后续绘制的数值解和精确解曲线也不会对应,还存在初始常数取值和Y0不一致的问题,需要重新根据选定的SDE推导匹配的解析解表达式。
  • 求解器内部对deltaW的维度要求是a行b列(每列对应一个时间步的布朗增量),如果randn_numbers返回的deltaW维度不符合这个要求,后续还会出现维度运算报错,可以提前用size(deltaW) == [a, b]做校验。

内容的提问来源于stack exchange,提问作者JulianAngussmith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 17:36:08