为什么按照这个程序打出来MATLAB运行是空白的?求指导,有偿
16条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在您提供的MATLAB代码中,存在一些语法错误和格式问题。我已经对代码进行了修正,并将其整理为一个完整的可执行程序。以下是修正后的代码:
% 基于MATLAB的新能源汽车仿真:电动汽车梯形加速度换道路径规划 % 设置仿真时间区间 t = 0:0.001:3.284; % 初始化结果矩阵 x = zeros(size(t)); v = zeros(size(t)); a = zeros(size(t)); for i = 1:numel(t) ti = t(i); % 横向位移、速度、加速度计算 if ti < 0.5 x(i) = (2 * ti^3) / 3; v(i) = 2 * ti^2; a(i) = 4 * ti; elseif (0.5 <= ti && ti <= 1.142) x(i) = ti^2 - ti / 2 + 1 / 12; v(i) = 2 * ti - 0.5; a(i) = 2; elseif (1.142 <= ti && ti < 2.142) x(i) = -(2 * ti^3) / 3 + 3.284 * ti^2 - 3.108 * ti + 1.076; v(i) = -2 * ti^2 + 6.568 * ti - 3.108; a(i) = -4 * ti + 6.568; elseif (2.142 <= ti && ti < 2.784) x(i) = -ti^2 + 6.068 * ti - 5.4747; v(i) = -2 * ti + 6.068; a(i) = -2; else x(i) = (2 * ti^3) / 3 - 6.568 * ti^2 + 21.567 * ti - 19.857; v(i) = 2 * ti^2 - 13.136 * ti + 21.567; a(i) = 4 * ti - 13.136; end % 纵向位移计算 y(i) = 30 * ti; end % 绘制曲线 figure(1); hold on plot(y, x, 'linewidth', 1.5); xlabel('纵向位移/m'); ylabel('横向位移/m'); figure(2); hold on plot(t, x, 'linewidth', 1.5); xlabel('时间/s'); ylabel('横向位移/m'); figure(3); hold on plot(t, v, 'linewidth', 1.5); xlabel('时间/s'); ylabel('横向速度/(m/s)'); figure(4); hold on plot(t, a, 'linewidth', 1.5); xlabel('时间/s'); ylabel('横向加速度/(m/s^2)'); % 不需要额外的 "hold on" 和 "end",因为它们在循环外部是多余的
这段修正后的代码应该可以在MATLAB环境中正确运行并绘制出所需的四幅曲线图。主要的修改包括:
- 将仿真时间区间
t
定义为一个数组,便于后续计算和绘图。 - 初始化结果矩阵
x
,v
,a
,用于存储每个时间点对应的横向位移、速度和加速度。 - 使用循环索引
i
代替原始代码中的t
,避免在循环内部直接操作向量元素时产生混淆。 - 移除了不必要的 "hold on" 和最后一个 "end",因为它们在循环外部没有作用。
请复制上述修正后的代码到您的MATLAB环境中运行,应该能成功绘制出电动汽车高速公路换道过程的轨迹规划曲线。如果有任何疑问或问题,请随时告诉我。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录- 将仿真时间区间
悬赏问题
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 一直显示正在等待HID—ISP