matlab如何合并txt文件里面的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何合并txt文件里面的数据相关的知识,希望对你有一定的参考价值。
有10万个这样txt文件,如何都去掉前4行,合并成一个txt文件。就是合并成一长列。
第一步:先把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。 参考技术A 第一步:将这些文件都放在一个路径下,方便批处理;
第二步:编写程序,逐个文件读取,存入一个变量中;
第三步:全部读取后就可以另存为一个txt文件即可。
其中第二步较难。待会给你贴个m文件。追问
好人啊.......
每个文件都是从第5行读取,然后再合并
我下面给出导入数据的函数,其中你把filename设为你的文件名,把startRow设为4,然后用循环调用,就能把每个文本里的数据读出来,每读一个文件就把数据追加到列尾,思路应该很明确了吧。
function data = importfile(filename, startRow, endRow)
delimiter = '';
if nargin<=2
startRow = 4;
endRow = inf;
end
formatSpec = '%f%[^\n\r]';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, endRow(1)-startRow(1)+1, 'Delimiter', delimiter, 'HeaderLines', startRow(1)-1, 'ReturnOnError', false);
for block=2:length(startRow)
frewind(fileID);
dataArrayBlock = textscan(fileID, formatSpec, endRow(block)-startRow(block)+1, 'Delimiter', delimiter, 'HeaderLines', startRow(block)-1, 'ReturnOnError', false);
dataArray1 = [dataArray1;dataArrayBlock1];
end
fclose(fileID);
data = dataArray:, 1;本回答被提问者和网友采纳
如何用matlab读取txt文件中的数据,并画图
txt数据格式是这样的:第1个坐标点 x=1.22 y=2.33,一共有好多好多行,如何读取里面的x,y的坐标?并画出2维图?
用importdata读取数据,这些数据全在一列了
我使用下面的程序,但是每次画图都出错,应该是吧a的值赋给mynumber的时候数据类型不对了,可是我不会改。
%% 1 打开文件
[filename,filepath]=uigetfile('*.txt','选择文件!!!!');
file = [filepath filename];
fid = fopen(file,'rt');
if fid == -1
error('文件打开错误。')
end
%% 2 提取
mynumber = [];
while 1
nextline = fgetl(fid);
if ~isstr(nextline), break, end
disp(nextline);
a=sscanf(nextline, '%f');
mynumber=[mynumber;a]
end
numplot=mynumber(:);
plot(numplot);
利用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 是包含该文件数据的双精度数组。
参考技术A 请楼主把txt文件和上述代码发给我:humour333@126.com
我帮你看看怎么回事。
“用importdata读取数据,这些数据全在一列了 ”这个问题可以用reshape函数来进行修改。
你在matlab下打开“doc reshape”帮助查看一下reshape的使用方法,看例子就很明白了。本回答被提问者采纳 参考技术B 可以用importdata读取数据 至于画图直接plot就好了
还有什么问题站内联系 参考技术C 你要不把数据放在EXCEL中试试看
以上是关于matlab如何合并txt文件里面的数据的主要内容,如果未能解决你的问题,请参考以下文章
matlab,两个txt文件想合并,一个是一列文件名,“0001.jpg”一直到“2000.jp