How can I read array from a text file?

I have a lot of text files in the form:
(0000000000)
(2020231032)
(0222320033)
(3120030223)
(0001132233)
And I want to import them as arrays. When I get rid of the clammers and use dlmread, it reads each row as one big number, but I need them as row vectors of the given length. Is there a way to read the file as the array I wish, or maybe a function that inserts comma after every number?

2 件のコメント

Ameer Hamza
Ameer Hamza 2020 年 3 月 21 日
How do you want to load each row into array? Giving an example output based on the lines in question will be helpful
Angel Dimitrov
Angel Dimitrov 2020 年 3 月 21 日
I want to load the whole file as an matrix array, also in this example 5x10 array. I need the output to be:
[0,0,0,0,0,0,0,0,0,0;
2,0,2,0,2,3,1,0,3,2;
0,2,2,2,3,2,0,0,3,3;
3,1,2,0,0,3,0,2,2,3;
0,0,0,1,1,3,2,2,3,3;]

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

 採用された回答

Ameer Hamza
Ameer Hamza 2020 年 3 月 21 日
編集済み: Ameer Hamza 2020 年 3 月 21 日

2 投票

Try this
file = fopen('filename.txt');
data = textscan(file, '(%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d)');
fclose(file);
data = cell2mat(data);

3 件のコメント

Angel Dimitrov
Angel Dimitrov 2020 年 3 月 21 日
Thanks a lot,that works quite nice. And if someone knows a way, where I don't have to write the exact numbers of %1d, because not all files have the same length, would be greatly appreciated.
Ameer Hamza
Ameer Hamza 2020 年 3 月 22 日
Following code will work on arbitrary number of digits
file = fopen('temp.txt');
data = textscan(file, '%s');
fclose(file);
result = cell2mat(cellfun(@(x) sscanf(x(2:end-1), '%1d'), data{1}, 'UniformOutput', 0)')';
Angel Dimitrov
Angel Dimitrov 2020 年 3 月 22 日
Thank you for your help!

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by