【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《matlab图片数据读取总结》,欢迎阅读!
1: 若fig图像文件存在,而其数据丢失,可直接使用函数从fig文件中将数据导出
①open('d:\filename.fig');% filename是文件名
% 取出曲线的handle,这里gca表示当前图形的CurrentAxes属性
% 如果图中有多条曲线,lh为一个数组
lh = findall(gca, 'type', 'line');
% 取出x轴数据
xc = get(lh, 'xdata');%多条曲线,若取第i条线的数据,则xc=get(lh(i),'xdata')
% 取出y轴数据
yc = get(lh, 'ydata');
%结果显示
xc %x轴数据矩阵
yc %y轴数据矩阵
解释:
gcf 返回当前Figure对象的句柄值
gca返回当前axes对象的句柄值
gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的 任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。
2:若为非fig格式的其他常见图片格式,如.jpg,.png等等,可采取手动点击和程序取值等方式。
①手动点击取值作图
clear all;
clc;
y=imread('d:\xx.png'); %读取该图
imshow(y); %显示该图
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
[x0,y0] = ginput; %利用鼠标取点,按回车键结束。
%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。
%存取角点坐标信息
save corner.mat x0 y0
%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
[x1,y1] = ginput;
%存取曲线1的点源信息
save line1.mat x1 y1
%其余曲线类推
%存取曲线2的点源信息
[x2,y2] = ginput;
save line2.mat x2 y2
%重画
%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换 根据实际修改为自己的坐标
%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
x1 = (x1-min(x0))*8.0/(max(x0)-min(x0));
y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));
plot(x1,y1,'r-','Markersize',5);%修改线的属性设置
hold on;
x2 = (x2-min(x0))*8.0/(max(x0)-min(x0));
y2 = (y2-max(y2))*4.0/(min(y0)-max(y0));
plot(x2,y2,'m-','Markersize',5);%修改线的属性设置
axis equal;
axis([0 8 0 4]);
set(gcf,'outerposition',get(0,'screensize'));
②
请教各位大虫,我用Matlab计算然后用Plot命令画了一个图,但是我想把图上的数据导出来到origin处理,但是自己对M不太了解,请问最简单的方法怎么把数据导出来,txt, worksheet, Xls, csv等等都可以。
用save命令,可以直接将变量保存为文本文件。
如:
x = 0 : pi / 100 : 2 * pi;
y = sin( x );
save( 'test.txt', 'x', 'y', '-ASCII' )
也可以直接导出到excel。
如:
d = {'Time', 'Temp'; 12 98; 13 99; 14 97};
xlswrite('climate.xls', d, 'Temperatures', 'E1');