如何使用MATLAB读取txt文件中的数据并绘图

txt中只有数据,部分数据如下:
1710
1716
1713
1716
1713
1712
1714
1716
1719
1719
1723
1728
本人菜鸟,请教各位
huxuec的程序代码我运行了一下,出来的图如下,老师的要求好像不是以数据为坐标轴上的点 ,而是做波形图,横坐标为50HZ-0HZ,纵坐标为力,数据即是测力传感器测量的数值

利用MATLAB中的 load 读取函数与 plot 绘图函数可以实现所需的功能。

代码如下(假设txt的文件名为 data.txt ):

load data.txt
plot(1:length(data),data,'*-')

由于没有横坐标的值,横坐标利用 1:length(data) 代替。

如果data.txt 文件不在MATLAB的默认路径里面,那么文件还应包含此文件的路径。例如data.txt文件的路径为 C:\practice ,那么 load 函数应该改为

load C:\practice\data.txt

实现二维绘图功能可以利用最简单的绘图函数 plot 。例如绘制 X 与 Y 的图像(X,Y均为1*n或者n*1的矩阵),输入命令 plot(X,Y) 即可快速绘图。

扩展资料:

load 的其他用法:

1、 load(filename)         

从 filename 加载数据。如果 filename 是 MAT 文件,load(filename) 会将 MAT 文件中的变量加载到 MATLAB 工作区;如果 filename 是 ASCII 文件,load(filename) 会创建一个包含该文件数据的双精度数组。

2、 load(filename,variables)         

加载 MAT 文件 filename 中的指定变量variables。

3、 load(filename,'-ascii')         

将 filename 视为 ASCII 文件,而不管文件扩展名如何。

4、 load(filename,'-mat')         

将 filename 视为 MAT 文件,而不管文件扩展名如何。

5、 load(filename,'-mat',variables)         

加载 filename 中的指定变量。

6、 S = load(___)         

使用前面语法组中的任意输入参数将数据加载到 S 中。如果 filename 是 MAT 文件,则 S 是结构数组;如果 filename 是 ASCII 文件,则 S 是包含该文件数据的双精度数组。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-19
第一步:先把txt文件复制到MATLAB的目录,或者在MATLAB中将路径指向txt文件所在路径。

第二步:右键存有数据的txt文件,选择Import Data...

第三步:Import Data之后就能看到txt里的数据被妥善安放好位置了,然后在Range右边的列表中选择Matrix,再点击绿色的对勾√导入数据:

第四步:导入完数据后,在workplace里能看到名为txt文件名的数组变量,就说明导入成功,这里是a:

第五步:最后就是编写语句了:plot(a(:,2),a(:,3),'o'),回车就会出现以o为点的散点图,如果是:plot(a(:,2),a(:,3),'*'),就得到以*为点的散点图;

绘图说明:
1.将数据表的各列数值分别赋予变量x、y、z等,格式如下:x=sheetname(:,1), y=sheetname(:,2), z=sheetname(:,3);
2.用命令plot(x,y,’XXXX’)绘制图形,单引号中的符号表示点线的属性,如线形、颜色、点的形状等,若用双对数坐标画图则命令为loglog(x,y);
3.在弹出的绘图界面中用菜单View—Property Editor编辑图形属性,如字体大小、数据点形状、横纵坐标名称、绘图区域颜色等;
4.绘图方法2:在数组编辑器上点击Plot Selection按钮,选择图形的类型即可;
5.绘图方法3:菜单File—New—Figure创建新的图形,在图形编辑器中Figure Palette面板点击2D Axes,点击右下角Add Data选择图表类型和坐标轴的数据源,度分布图将坐标轴由线形改为对数即可。
6.hold on/off命令:叠绘命令,切换绘图的保持功能;
7.绘制双纵轴:
7.1 plotyy(x1,y1,x2,y2):分别用左/右侧y轴表示两条曲线;
7.2 plotyy(x1,y1,x2,y2,FUN):FUN是字符串格式,用来指定绘图的函数名,可以由多个。
8.创建子图:subplot(m,n,p):表示将绘图区域分为m*n个矩形块,分别创建坐标系,如 >>subplot(1,2,1);loglog(x,y); >>subplot(1,2,2);loglog(m,n); 表示在图形中创建两个子图,左右排列,分别绘制双对数坐标图,变量分别是x、y和m、n。
第2个回答  推荐于2017-09-11
由于你写的作图要求不是很清楚 所以我就假设你是需要读取txt数据然后每个数值在图像中是一个点 我把你的txt数据命名称testingdata 你可以根据自己的文件保存名字修改这里的名字
clear;
fid3=textread('testingdata.txt', '%n', 'whitespace', '');
[m,n]=size(fid3);
Ox=1:m;
figure;
plot(Ox,fid3,'*');
grid on;本回答被提问者采纳
第3个回答  2009-05-18
可以先用fopen函数打开一个文件(不仅仅可以打开txt文件格式),其打开格式可以参看Matlab关于fopen的help
返回一个文件标识,然后通过fread或者fscanf函数对打开的文件进行读取操作,读取出来的便是你原文件中存储的数据了,就可以进行下一步处理了
第4个回答  2009-05-18
[FileName,PathName] = uigetfile('*.txt',...
'Select the Data file');
file=fullfile(PathName,FileName);
data=load(file);
%plot(data(1,:),data(2,:))
%你的数据是一列数据吧
[m,n]=size(data);
plot([1:n],data(1:n))
相似回答