# Sort data from text file into columns

4 views (last 30 days)
tg295 on 20 Jul 2018
Commented: tg295 on 20 Jul 2018
I have data in a text file of the form:
30.693
43.803
30.305
43.424
30.066
43.213
30.305
43.001
30.523
42.79
33.111
33.316
40.293
33.323
33.502
40.289
33.528
40.413
...
...
I would like matlab to read it into a matrix whereby each block of numbers separated by spaces above and below is made into a separate column where the first block of n numbers makes the first column and the second block of m numbers makes the second column etc, i.e.:
30.693 30.305 ... 33.323 33.528 33.737
43.803 43.424 ... 33.502 40.413 40.62
40.289
Many thanks, I am a beginner so bear with me :)
FYI I have a large number of these text files, all with different size blocks/values within each column, therefore I need a general solution not one for this specific case.

Christopher Wallace on 20 Jul 2018
fid = fopen('yourTxt.txt');
A = [];
tline = fgetl(fid);
ii = 1;
jj = 1;
while ischar(tline)
while ~isempty(tline)
A(ii,jj) = str2num(tline);
ii = ii + 1;
disp(tline)
tline = fgetl(fid);
end
ii = 1;
jj = jj + 1;
tline = fgetl(fid);
end
fclose(fid);
tg295 on 20 Jul 2018
It worked! thanks so much :)