如何在MATLAB中正确绘制数值算法的误差变化曲线
Matlab对数误差图调整方案
你只需要修改绘图部分的代码,将普通线性Y轴替换为对数Y轴,再限定Y轴范围即可,修改后的代码如下:
rms_res = norm(residual)/sqrt(lres); errors = [errors rms_res]; % 其他计算相关代码 % 绘图 semilogy(coord_ctrs, errors, '.-'); % 直接用semilogy实现Y轴对数刻度,同时合并点和线的绘制 % 如果你偏好保留原有的plot+line写法,可替换为以下三行: % plot(coord_ctrs, errors, '.'); % line(coord_ctrs, errors); % set(gca, 'YScale', 'log'); % 手动将当前坐标轴Y轴设为对数刻度 % 设置Y轴范围为1e-6到1e-1,对数轴范围参数需按从小到大顺序传入 ylim([1e-6, 1e-1]); % 可选优化(适配学术论文格式): grid on; % 显示对数网格,方便读取误差数值 xlabel('插入近似点数量'); ylabel('RMS误差');
关键修改点说明:
- 两种实现对数Y轴的方式效果完全一致:直接调用
semilogy绘图,或者调用set(gca, 'YScale', 'log')手动修改已有坐标轴的Y轴刻度类型 - 如果你的误差值存在超出
1e-6到1e-1范围的情况,超出范围的点会默认不显示,若需要全部显示可删除ylim配置,Matlab会自动适配对数轴的显示范围
内容的提问来源于stack exchange,提问作者Odess4
相关产品推荐
相关产品推荐

