科研笔记第6期——Matlab 如何提取 fig 文件中的数据

有时候运行的程序只保存了 fig 文件,而没有保存原始数据,当需要对 fig 文件中的数据进行分析和处理时就会犯难了。本文详细介绍 Matlab 如何提取 fig 文件中的数据,并提供原创的 m 函数,可方 便实现各类 figure 图形提取数据。

一、方法一

1.1 示例fig图

例如现在有一个保存的图形:

科研笔记第6期——Matlab 如何提取 fig 文件中的数据_第1张图片

1.2 源程序

clc
clear 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 运行结果

科研笔记第6期——Matlab 如何提取 fig 文件中的数据_第2张图片

二、方法二

2.1 示例fig图

4维魔方随机矩阵:

科研笔记第6期——Matlab 如何提取 fig 文件中的数据_第3张图片

基于蒙特卡洛算法生成的等效风机出力图:

科研笔记第6期——Matlab 如何提取 fig 文件中的数据_第4张图片

2.2 源程序

主函数


clc
clear all
hf1=open('untitled.fig')%untitled.fig为基于蒙特卡洛算法生成的等效风机出力图
XYZdata1 = Fun_GetFigData(hf1);
hold on
hf2=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';
    end
end

2.3 运行结果

科研笔记第6期——Matlab 如何提取 fig 文件中的数据_第5张图片

三、参考内容

[1]Matlab如何提取fig文件中的数据_matlab读取fig数据_MatlabFans_Mfun的博客-CSDN博客


本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

你可能感兴趣的:(笔记,matlab,开发语言,青少年编程,汇编)