Matlab 如何提取 fig 文件中的數據

有時候運行的程序只保存了 fig 文件,而沒有保存原始數據,當需要對 fig 文件中的數據進行分析和處理時就會犯難了。本文詳細介紹 Matlab 如何提取 fig 文件中的數據,并提供原創的 m 函數,可方 便實現各類 figure 圖形提取數據。

一、方法一

1.1 示例fig圖

例如現在有一個保存的圖形:

Matlab 如何提取 fig 文件中的數據的圖1

1.2 源程序

clcclear all% 第一步 打開 fig 文件;%第二步:獲取 line 句柄ha = get(gcf,'Children'); % 獲取當前的圖形的子對象:Axes坐標軸對象hl = get(gca,'Children') % 獲取坐標軸的子對象:Line對象%第三步:獲取 line 對象的 xdata、yadata 屬性xdata = get(hl,'XData');ydata = get(hl,'YData');

1.3 運行結果:

Matlab 如何提取 fig 文件中的數據的圖2

二、方法二

2.1 示例fig圖

4維魔方隨機矩陣:

Matlab 如何提取 fig 文件中的數據的圖3

基于蒙特卡洛算法生成的等效風機出力圖:

Matlab 如何提取 fig 文件中的數據的圖4

2.2 源程序
主函數
clcclear allhf1=open('untitled.fig')%untitled.fig為基于蒙特卡洛算法生成的等效風機出力圖XYZdata1 = Fun_GetFigData(hf1);hold onhf2=open('magic.fig')%magic.fig4維魔方隨機矩陣XYZdata2 = Fun_GetFigData(hf2);

部分子函數(由于篇幅限制,此處不放全部,有需要的小伙伴私我)

function [XYZdata,Str] = Fun_GetFigData( hf,filename )% XYZdata = Fun_GetFigData( hf ) 獲取figure圖的% Str表頭字符串% hf  Figure圖形句柄 或 Figure文件名(必須帶擴展名.fig)% XYZdata 坐標數組% filename 保存為xls文件的名稱,不輸入或輸入0時不保存xls文件%                              輸入非零數值時,保存成xls文件,文件名與figure文件名相同%                              輸入filename時按照輸入的字符串保存成xls文件%                              注意filename不帶擴展名.xls% Str 為與XYZdata一一對應的字符串cell數組,用于說明每列數據的表頭,在保存為xls文件時保存為表頭% 文件調用規則,請打開下面例子% shuju函數%% 
% 輸入參數filename的判斷if nargin == 1    filename = 0;elseif ischar(hf)                       % 當輸入的hf為文件名時    filename = [hf(1:end-3)  'xls'];  elseif isnumeric(filename)    if filename ~= 0            filename = '圖形數據.xls';    endend
2.3 運行結果:

Matlab 如何提取 fig 文件中的數據的圖5

三、參考內容

[1]Matlab如何提取fig文件中的數據_matlab讀取fig數據_MatlabFans_Mfun的博客-CSDN博客


文章來源:哩哩橙

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1