如何在MATLAB中绘制目标函数对应图像的前50个数据点
问题原因
你当前的代码存在两处错误:
- 连续调用两次
plot没有添加hold on命令,第二次绘图会直接覆盖第一次的绘图结果 plot(x(1:50))仅传入了x向量的前50个值,MATLAB会默认以元素索引为横轴、x的取值为纵轴绘图,既没有用到你计算好的y值,也不符合绘制函数前50个采样点的需求
正确实现代码
仅绘制前50个函数点
p = pi; x = 0:0.1:4*p; y = exp(-0.4*x).*sin(x); % 同时传入前50个x和对应的y值绘图 plot(x(1:50), y(1:50)) title ('MATLAB PRACTICE'); xlabel('x-Axis'); ylabel('y-Axis'); grid on
对比完整曲线+前50个点(可选)
如果需要同时展示完整函数曲线和前50个点的位置,可以用hold on叠加绘图:
p = pi; x = 0:0.1:4*p; y = exp(-0.4*x).*sin(x); % 绘制灰色完整曲线 plot(x, y, 'Color', [0.6 0.6 0.6], 'DisplayName', '完整函数曲线') hold on % 用红色点线突出前50个点 plot(x(1:50), y(1:50), 'r.-', 'LineWidth', 1.5, 'DisplayName', '前50个采样点') title ('MATLAB PRACTICE'); xlabel('x-Axis'); ylabel('y-Axis'); grid on legend
内容的提问来源于stack exchange,提问作者abdcg
相关产品推荐
相关产品推荐

