Read .txt and Write in matab

6 visualizaciones (últimos 30 días)
vaya putra
vaya putra el 11 de Nov. de 2019
Comentada: Rik el 13 de Nov. de 2019
Hi
i have 30000 thousand line of input file in text file, but i only need line 2618-3400.
imposible if i have to write manual to the end
how to write value C that consist of data from 2618-3400
A=readfile('data.txt')';
%line 2618 to 3484
C =[A{2618,1} A{2619,1} A{2620,1} A{2621,1} A{2622,1} A{2623,1} A{2624,1}]
format long g
pf = sscanf(C,'%f')
  7 comentarios
vaya putra
vaya putra el 11 de Nov. de 2019
more complexs and its become char?
Adam Danz
Adam Danz el 11 de Nov. de 2019
Editada: Adam Danz el 12 de Nov. de 2019
Reading in the entire file is MUCH less complex than the method you're currently using. The data are read in as char just like the method you're already using. That's why you're applying sscanf.

Iniciar sesión para comentar.

Respuesta aceptada

Rik
Rik el 12 de Nov. de 2019
I suspect this is what you need:
C=readfile('output.txt');%read the file to a cell array
Ca=C(2618:3484);%select the lines
%process every line to doubles
Cb=cellfun(@(x) sscanf(x,'%f'),Ca,'UniformOutput',false);
%convert to matrix
out=cell2mat(Cb)';
  2 comentarios
vaya putra
vaya putra el 12 de Nov. de 2019
perfect
Rik
Rik el 12 de Nov. de 2019
If this solved your question, feel free to mark it as accepted answer. If not, feel free to comment with your remaining issues.

Iniciar sesión para comentar.

Más respuestas (1)

Adam Danz
Adam Danz el 11 de Nov. de 2019
Read in the whole file at once. In this example I'm using fileread() because I'm unfamiliar with the FEX submission readfile() mentioned in your question.
C = fileread('myTextFile.txt');
Split the char array by lines into a cell array
Ca = strsplit(C,newline);
Extract text lines n to m
Ca(n:m)
If you'd rather have a char array as output
char(Ca(n:m))
  3 comentarios
Adam Danz
Adam Danz el 13 de Nov. de 2019
I just had the chance to check out that function. I see why it would be useful!
Rik
Rik el 13 de Nov. de 2019
You can probably imagine the frustration that led to me writing this function. I admit it is a strange use case to want a text file reader that handles UTF8 and ANSI for both Matlab and Octave. I even managed to find a bug in the Octave implemention of textscan.
If you have any suggestions for how to make the function more robust, please feel free to comment on the FEX (or send me an email, you can get the address from the function doc).

Iniciar sesión para comentar.

Categorías

Más información sobre Text Data Preparation en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by