2013-11-02 167 views

回答

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 

混搭把工作做好。

2

根據您的意見:你有1雙X - 和Ÿ -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值。修改該變量根據需要,然後把它放回情節:

set(aux(n),'XData',x) 
+0

我有一個三個子圖的情節。我得到這個錯誤:錯誤使用得到 找到無效的屬性。 對象名稱:文本 屬性名稱:'XData'。 – BlueBit

+0

我的意思是沒有副劇。子圖。圖中有三個多項式函數。 – BlueBit

+0

請看現在的答案 –