Merge 2 text file in same row / same line

Hi, i would like to combine 2 text file.
The data shown as below:
a1.txt
0:0 1:63 2:55 3:55
aa1.txt
4:54 5:56 6:61
I have try use code from below link:
%Combine Text File%
File = {'a1.txt', 'aa1.txt'}; % Thanks Walter
numberOfFiles = length(File); %
C = cell(1, numberOfFiles);
for k = 1:numberOfFiles
C{k} = strsplit(fileread(File{k}), '\n');
end
AllC = C{1};
for k = 2:numel(C)
AllC = strcat(AllC, {''}, C{k}); % [EDITED] With a space as separator here
end
[fid, msg] = fopen('a_fuse.txt', 'w');
if fid == -1, error('Cannot open file for writing: %s', msg); end
fprintf(fid, '%s\n', AllC{:});
fclose(fid);
the output will become as below:
0:0 1:63 2:55 3:55
4:54 5:56 6:61
BUT, i want the out put become as below:
0:0 1:63 2:55 3:55 4:54 5:56 6:61

Answers (1)

KSSV
KSSV on 20 Jun 2020
Edited: KSSV on 20 Jun 2020
File = {'a1.txt', 'aa1.txt'};
N = length(File);
for i = 1:N
fid = fopen(File{i},'rt') ;
C = textscan(fid,'%s') ;
S{i} = C{1} ;
end
S = strjoin(S)

4 Comments

got bellow error once i run the code:
>> Untitled2
Error using strjoin (line 53)
First input must be a string array or cell array of character vectors.
Error in Untitled2 (line 8)
S = strjoin(S)
Now try...
still can't same message as before.
File = {'a1.txt', 'aa1.txt'};
N = length(File);
for i = 1:N
fid = fopen(File{i},'rt') ;
C = textscan(fid,'%s') ;
S{i} = C{1} ;
end
S = strjoin(S)
C = cell(1, numberOfFiles);
for k = 1:numberOfFiles
C{k} = strsplit(fileread(File{k}), '\n');
end
AllC = C{1};
for k = 2:numel(C)
AllC = strcat(AllC, {''}, C{k}); % [EDITED] With a space as separator here
end
[fid, msg] = fopen('a_fuse.txt', 'w');
if fid == -1, error('Cannot open file for writing: %s', msg); end
fprintf(fid, '%s\n', AllC{:});
fclose(fid);
File = {'a1.txt', 'aa1.txt'};
This how the data being arrange.

Sign in to comment.

Categories

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!