% 提取时间和距离数据 time = time; truedistance = truedistance; APD=APD; % 将时间转换为秒 time = time * 60; t = length(time); % 定义非线性拟

动态 未结 0 71
小小草
小小草 LV1 2023年9月23日 23:40 发表
以下是添加了收敛时间图、收敛速度图、计算时间曲线图的完整代码: ```matlab % 粒子滤波器实现示例 % 设置模型参数 N_particles = 1000; % 粒子数目 sigma_v = 1; % 系统噪声标准差 sigma_w = 1; % 观测噪声标准差 % 提取时间和距离数据 time = time; truedistance = truedistance; APD=APD; % 将时间转换为秒 time = time * 60; t = length(time); % 定义非线性拟合模型 fun = @(a, b, t) a .* exp(b .* t); % 创建子图 figure; plot(time,truedistance,'k','linewidth',5) ; hold on; % 预初始化拟合结果的 cell 数组 fittedmodel = cell(t-1, 1); for i = 1:t-1 % 拿出相邻两点,作为单独的分段数据进行拟合 xs = time(i:i+1); ys = truedistance(i:i+1); % 将 xs 和 ys 转换为列向量 xs = xs(:); ys = ys(:); % 非线性拟合指数模型 [curve, gof] = fit(xs, ys, 'exp1'); fittedmodel{i} = curve; % 输出拟合函数和R方值 fprintf("第%d个分段的拟合函数: \n%s\nR2: %f\n", i, formula(curve), gof.rsquare); % 绘制拟合曲线 xfit = linspace(min(xs), max(xs), 1000); yfit = feval(curve, xfit); plot(xfit, yfit,'linewidth',5) end % 添加标题、标签和图例 title('分段函数的拟合曲线图'); xlabel('x'); ylabel('y'); grid on; hold
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复