MATLAB Answers


combine multiple text files into one text file

Asked by Cody
on 5 Jul 2011
Latest activity Answered by Alex Z.
on 16 Jun 2017


I have multiple text files with names like 1.txt, 2.txt, 3.txt...... Each file has a single row of data(same format and length), I am think about combining those files into one text file which has a matrix data.

For example

1.txt has a row of " 1 3 4 8...."

2.txt has a row of " 3 5 7 3...."

3.txt has a row of " 9 1 3 5...."


I want to combine them into a file with a matrix like below,

1 3 4 8....

3 5 7 3....

9 1 3 5....



Thanks a lot


Log in to comment.

4 Answers

Answer by Fangjun Jiang on 5 Jul 2011
 Accepted Answer

In DOS, I used to use this all the time.

copy 1.txt+2.txt+3.txt MyBigFat.txt

In MATLAB, you can use

system('copy 1.txt+2.txt+3.txt MyBigFat.txt')


Cool! I didn't know that would work ... but I'll file it in the "potentially useful" file.

Doesnt work if writeStr or finalNameStr contains white spaces. Due to how DOS works

system(['copy ' writeStr ' ' finalNameStr]);

I had the Problem that the final file contained an arrow as last sign which causes trouble. This was solved by using

system('copy/b ...');

Description for copy/b

Log in to comment.

Answer by Jason Ross
on 5 Jul 2011

Keep in mind you don't even need MATLAB to do this. You can do it with built in OS commands on Windows or UNIX


type 1.txt > bigfile.txt
type 2.txt >> bigfile.txt


touch bigfile.txt
cat 1.txt >> bigfile.txt
cat 2.txt >> bigfile.txt

This will result in one big file that's in the format you want. Of course, there's no error checking, but the big upside is going to be that there is very little overhead so your processing may go considerably faster depending on the number of files you have to do.

Depending on the order of the file names, this may also be very easily scriptable. You will, of course need to use one of the import functions in MATLAB to read it in eventually, as well.


Log in to comment.

Answer by Nirmal Gunaseelan on 5 Jul 2011

I prefer to use TEXTREAD in such cases. You could pass in different file names in every call and use the same matrix with different row numbers as output variables.


I read textread help but still do not know how to use textread to combine them. Could you please write down the detailed steps? Thanks.

What Nirmal meant was to use textread() to read each file and then combine them in MATLAB. You know it's very easy to concatenate data in MATLAB, do you?
a=[1 3 4 8]
b=[3 5 7 3]

Log in to comment.

Answer by Alex Z.
on 16 Jun 2017

This can be done in Easymorph (it's free) using Append transformation. It can work with as many as 10 millions rows in the file.


Log in to comment.

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!