我有一个.fig文件,我只想在x轴上修改2个值。
当我没有绘图的源代码时,怎么可能?只有一个.fig文件。
答案 0 :(得分:2)
根据你的评论:你有一对 x - 和 y -axes,其中有几个图,你想要修改值
打开.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
这将为您提供变量x
中的 x -axis值。根据需要修改该变量,然后将其放回到图中:
set(aux(n),'XData',x)
答案 1 :(得分:1)
使用get(gca,...)
提取数据可能是最直接的解决方案。但是,还有其他一些不起眼但有用的MATLAB功能值得一提。
第一个是MATLAB从数字生成M文件的能力,可用于以编程方式重新创建和修改数字。只需单击以下菜单项,您将在编辑器中获得一个新功能,例如function createfigure(X1, Y1)
,它将完全重新创建该图,但会显示一些新数据X1
和Y1
。
另一件值得一提的是.fig文件实际上是包含指定数字的数据的MAT文件。例如,以下命令将.fig数据加载到MATLAB中的struct
中,您可以轻松访问绘图数据:
>> 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
混合搭配以完成工作。