如何在MATLAB中修改.fig文件中的某些x轴值?

时间:2013-11-02 11:46:16

标签: matlab matlab-figure

我有一个.fig文件,我只想在x轴上修改2个值。

当我没有绘图的源代码时,怎么可能?只有一个.fig文件。

2 个答案:

答案 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),它将完全重新创建该图,但会显示一些新数据X1Y1

enter image description here

另一件值得一提的是.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

混合搭配以完成工作。