Filter löschen
Filter löschen

Find empty line in text file and build array

7 Ansichten (letzte 30 Tage)
Sergio Yanez-Pagans
Sergio Yanez-Pagans am 9 Jul. 2021
Hello everyone, I need help with this, please. If I have a text file (.txt) which contains the following:
1 1
1 1
2 2
2 2
3 3
3 3
I want to read this file and save the data into an array the saves the data in a new dimension everytime it finds an empty line. What I mean is that I would like to save all the data into 'array' such that:
array(1,:) = [1 1;1 1]
array(2,:) = [2 2;2 2]
array(3,:) = [3 3;3 3]
Thank you for your time!

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 9 Jul. 2021
if isunix()
%fake data
S = sprintf('1 1\n1 1\n\n2 2\n2 2\n\n3 3\n3 3\n')
else
S = fileread('YourFile.txt');
end
S =
'1 1 1 1 2 2 2 2 3 3 3 3 '
blocks = regexp(S, '\r?\n\r?\n', 'split')
blocks = 1×3 cell array
{'1 1↵1 1'} {'2 2↵2 2'} {'3 3↵3 3↵'}
block_values = cellfun(@(s) cell2mat(textscan(s, '')), blocks, 'uniform', 0)
block_values = 1×3 cell array
{2×2 double} {2×2 double} {2×2 double}
array = cat(3, block_values{:})
array =
array(:,:,1) = 1 1 1 1 array(:,:,2) = 2 2 2 2 array(:,:,3) = 3 3 3 3

Weitere Antworten (0)

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by