如何修改Matlab .fig文件中的原始X数据并乘以常数
从Matlab .fig文件修改实际X数据(而非仅刻度标签)
你可以直接从.fig文件中提取图形对象,修改其底层的X数据,具体步骤如下:
打开目标.fig文件,获取图形对象:
openfig('your_figure.fig'); % 替换成你的文件名 fig = gcf;获取所有坐标轴对象(单图场景直接用
ax = gca;即可;多子图则遍历所有轴):axes_list = findobj(fig, 'Type', 'Axes');遍历每个坐标轴,修改其中所有绘图对象的X数据:
假设你要乘以的常数是k(比如k=1.5),针对不同类型的绘图对象做对应处理:k = 1.5; % 替换为你的目标常数 for ax = axes_list' % 处理plot绘制的线条类对象 line_objs = findobj(ax, 'Type', 'Line'); for line = line_objs' x_data = get(line, 'XData'); set(line, 'XData', x_data * k); end % 处理scatter绘制的散点图对象 scatter_objs = findobj(ax, 'Type', 'Scatter'); for scatter = scatter_objs' x_data = get(scatter, 'XData'); set(scatter, 'XData', x_data * k); end % 处理bar绘制的柱状图对象 bar_objs = findobj(ax, 'Type', 'Bar'); for bar = bar_objs' x_data = get(bar, 'XData'); set(bar, 'XData', x_data * k); end end修改完成后,保存修改后的图形:
savefig(fig, 'modified_figure.fig');
如果你的fig文件中还有其他类型的绘图对象(如直方图、误差棒等),可以根据对象类型查找对应的X数据属性(比如误差棒对象ErrorBar的XData属性)进行类似修改。
内容的提问来源于stack exchange,提问作者bubucodex
相关产品推荐
相关产品推荐

