Find empty line in text file and build array

2 ビュー (過去 30 日間)
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 日
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
  1 件のコメント
Sergio Yanez-Pagans
Sergio Yanez-Pagans 2021 年 7 月 9 日
Thank you so much Walter!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by