1

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

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

4

2 回答 2

2

根据您的评论:您有一对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)
于 2013-11-02T12:10:44.843 回答
1

提取数据get(gca,...)可能是最直接的解决方案。但是,还有一些其他晦涩但有用的 MATLAB 功能值得一提。

首先是 MATLAB 从图形生成 M 文件的能力,可用于以编程方式重新创建和修改图形。只需单击以下菜单项,您将在编辑器中获得一个新功能,该功能function createfigure(X1, Y1)将完全重新创建图形,但带有一些新数据X1Y1.

在此处输入图像描述

值得一提的另一件事是 .fig 文件实际上是 MAT 文件,其中包含指定图形的数据。例如,以下命令会将 .fig 数据加载到structMATLAB 中的 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

混合搭配以完成工作。

于 2013-11-02T19:13:47.020 回答