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。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-30
第一步:将这些文件都放在一个路径下,方便批处理;

第二步:编写程序,逐个文件读取,存入一个变量中;
第三步:全部读取后就可以另存为一个txt文件即可。
其中第二步较难。待会给你贴个m文件。追问

好人啊.......

每个文件都是从第5行读取,然后再合并

第2个回答  推荐于2016-09-28
用MATLAB界面里的Import Data功能按钮,图形界面导入一个文本的数据,然后点击生成代码,用代码批量导入。
我下面给出导入数据的函数,其中你把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);
dataArray{1} = [dataArray{1};dataArrayBlock{1}];
end
fclose(fileID);
data = dataArray{:, 1};本回答被提问者和网友采纳
相似回答