我有一个 .fig 文件,我只想修改 x 轴上的 2 个值。
当我没有绘图的源代码时怎么可能?只有一个 .fig 文件。
根据您的评论:您有一对x轴和y轴,其中包含多个绘图,并且您想要修改值。
打开 .fig 文件并执行以下操作:
aux = get(gca,'Children'); %// get all plots within current axes
n = 1; %// or 2 or 3, whichever plot you want to change
x = get(aux(n),'XData'); %// x values of selected plot
这将为您提供 variable 中的x轴值x
。根据需要修改该变量,然后将其放回图中:
set(aux(n),'XData',x)
提取数据get(gca,...)
可能是最直接的解决方案。但是,还有一些其他晦涩但有用的 MATLAB 功能值得一提。
首先是 MATLAB 从图形生成 M 文件的能力,可用于以编程方式重新创建和修改图形。只需单击以下菜单项,您将在编辑器中获得一个新功能,该功能function createfigure(X1, Y1)
将完全重新创建图形,但带有一些新数据X1
和Y1
.
值得一提的另一件事是 .fig 文件实际上是 MAT 文件,其中包含指定图形的数据。例如,以下命令会将 .fig 数据加载到struct
MATLAB 中的 a 中,您可以轻松访问绘图数据:
>> f = load('testjunk.fig','-mat')
f =
hgS_070000: [1x1 struct]
>> axesNum = 1; seriesNum = 1;
>> series = f.hgS_070000.children(axesNum).children(seriesNum)
series =
type: 'graph2d.lineseries'
handle: 172.0051
properties: [1x1 struct]
children: []
special: []
>> X1 = series.properties.XData
ans =
0.0305 0.7441 0.5000 0.4799 0.9047
>> Y1 = series.properties.YData
ans =
0.6099 0.6177 0.8594 0.8055 0.5767
混合搭配以完成工作。