龙空技术网

实例讲解提取MATLAB的fig文件中的数据

云龙派 486

前言:

而今看官们对“matlab如何提取fig数据”大致比较珍视,姐妹们都想要了解一些“matlab如何提取fig数据”的相关文章。那么小编同时在网摘上搜集了一些有关“matlab如何提取fig数据””的相关内容,希望大家能喜欢,大家一起来了解一下吧!

当我们有一个MATLAB的fig文件,但是没有保存其绘图数据的时候,可以通过编程提取fig中的数据,进行数据的重新绘制或处理。前面简单介绍过提取MATLAB的fig文件中的数据,今天主要是以几个实际例子讲解编程提取fig中的单个曲线以及多个曲线的数据。

1.实例1 提取fig中的单个曲线

程序

clc;clear all;close all;rng(50)x = 1:24;y = rand(1,24);figure;plot(x,y,'b-o','markerface','b');xticks([1:24]);xlabel('Time(hour)');ylabel('Power(kW)');set(gca,'FontName','Times New Roman','FontSize',12);handle = findobj(gca,'Type','line');%获取曲线的handle,如果图中有多条曲线,handle为一个数组xdata = get(handle,'XData');%将handle的x数据赋给xdata一维数组ydata = get(handle,'YData');%将handle的y数据赋给ydata一维数组figure;plot(xdata,ydata,'b-o','markerface','b');result = [xdata; ydata]; xlswrite('图片.xlsx', result);

运行结果

原始fig

提取数据之后绘制的复现的fig

提取的数据文件

2.实例2 提取fig中的多个曲线的数据

程序

clc;clear all;close all;rng(50)x = 1:24;y = rand(1,24);rng(100)y1 = rand(1,24);figure;plot(x,y,'b-o','markerface','b');hold on;plot(x,y1,'r-o','markerface','r');xticks([1:24]);xlabel('Time(hour)');ylabel('Power(kW)');set(gca,'FontName','Times New Roman','FontSize',12);handle = findobj(gca,'Type','line');%获取曲线的handle,如果图中有多条曲线,handle为一个数组xdata = get(handle,'XData');%将handle的x数据赋给xdata一维数组ydata = get(handle,'YData');%将handle的y数据赋给ydata一维数组xdata = cell2mat(xdata);%将元胞类型转化成矩阵类型ydata = cell2mat(ydata);%将元胞类型转化成矩阵类型figure;plot(xdata(1,:),ydata(1,:),'b-o','markerface','b');hold on;plot(xdata(2,:),ydata(2,:),'r-o','markerface','r');xlabel('Time(hour)');ylabel('Power(kW)');set(gca,'FontName','Times New Roman','FontSize',12);result = [xdata; ydata]; xlswrite('图片1.xlsx', result);

运行结果

原始fig文件

提取fig数据复现图形

提取的两条曲线的数据

实例3 提取fig的多条曲线数据

程序

clc;clear all;close all;rng(50)x = 1:24;y = rand(5,24);figure;plot(x,y);handle = findobj(gca,'Type','line');%获取曲线的handle,如果图中有多条曲线,handle为一个数组xdata = get(handle,'XData');%将handle的x数据赋给xdata一维数组ydata = get(handle,'YData');%将handle的y数据赋给ydata一维数组xdata = cell2mat(xdata);%将元胞类型转化成矩阵类型ydata = cell2mat(ydata);%将元胞类型转化成矩阵类型figure;plot(xdata(1,:),ydata);result = [xdata; ydata];xlswrite('图片2.xlsx', result);

原始fig文件

提取数据之后重新绘制的fig文件

提取的数据文件

实例4 加载fig并提取多个曲线数据

程序

clc;clear all;close all;open('1.fig');handle = findobj(gca,'Type','line');%获取曲线的handle,如果图中有多条曲线,handle为一个数组xdata = get(handle,'XData');%将handle的x数据赋给xdata一维数组ydata = get(handle,'YData');%将handle的y数据赋给ydata一维数组xdata = cell2mat(xdata);%将元胞类型转化成矩阵类型ydata = cell2mat(ydata);%将元胞类型转化成矩阵类型figure;plot(xdata(1,:),ydata(1,:),'b-o','markerface','b');hold on;plot(xdata(2,:),ydata(2,:),'r-o','markerface','r');xlabel('Time(hour)');ylabel('Power(kW)');set(gca,'FontName','Times New Roman','FontSize',12);result = [xdata; ydata]; xlswrite('图片3.xlsx', result);

原始fig文件

提取的fig数据绘制图片

提取的数据结果

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

作 者 | 郭志龙

编 辑 | 郭志龙

校 对 | 郭志龙

标签: #matlab如何提取fig数据 #matlab提取figure数据 #matlab提取figure曲线数据 #matlab figure图中数据怎么提出来 #matlab figure数据导出