I am a new user of Matlab. So, a kind response will be highly appreciated.
All of my experimental data are saved into a txt file. Now, when I load the file, it gives me only one row without any tab or space. I need to separate the integers. A simple space after 3 integer will do the work. But, the file is huge. It's length is 1182239.
i.e: the data: 008112132143... I want: 008 112 132 143...

 Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 22 de Mayo de 2013
Editada: Azzi Abdelmalek el 22 de Mayo de 2013

0 votos

a='123456789'
a=reshape(a,3,[]);
a=[a;blanks(size(a,2))]
a=a(:)'
%or more general
b='1234567'
n=numel(b)
m=ceil(n/3)*3
a=blanks(m);
a(1:n)=b
a=reshape(a,3,[]);
a=[a;blanks(size(a,2))]
a=a(:)'

1 comentario

Saurabh Mahalpure
Saurabh Mahalpure el 25 de Abr. de 2022
How can I do this for big file with bitstream such 1010000010101110001010... upto 5-6lakh binary numbers stream

Iniciar sesión para comentar.

Más respuestas (2)

Matt J
Matt J el 22 de Mayo de 2013

0 votos

See DLMWRITE and DLMREAD
Walter Roberson
Walter Roberson el 22 de Mayo de 2013

0 votos

Read in the row as a string, say S.
If you want the result as strings, then
reshape(S, 3, []).'
would give one group of three per row.
If you want the result as integers converted from the strings, then
(S(1:3:end)-'0') * 100 + (S(2:3:end)-'0') * 10 + (S(3:3:end)-'0')
will give you a row vector of integral values.

Categorías

Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Mayo de 2013

Comentada:

el 25 de Abr. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by