Find empty line in text file and build array

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!

 採用された回答

Walter Roberson
Walter Roberson 2021 年 7 月 9 日

0 投票

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by