Borrar filtros
Borrar filtros

Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Read spesific rowintervals from .txt file and store them

2 visualizaciones (últimos 30 días)
Henning Eimstad
Henning Eimstad el 25 de Mzo. de 2020
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
I am trying to read a large .txt doc that continues for maany rows. I have tried to do it manually by the following code:
for i = 12
C = textscan(fid,'%.6f %.6f',npoints,'delimiter','\n', 'headerlines',i-1);
p1 = C{1}*1e3;
y1 = C{2};
py1 = [p1 y1];
end
for i = 40
C = textscan(fid,'%.6f %.6f',npoints,'delimiter','\n', 'headerlines',i-1);
p2 = C{1}*1e3;
y2 = C{2};
py2 = [p2 y2];
end
for i = 68
C = textscan(fid,'%.6f %.6f',npoints,'delimiter','\n', 'headerlines',i-1);
p3 = C{1}*1e3;
y3 = C{2};
py3 = [p3 y3];
end
Is it possible to do this is one loop ? the number of rows are equal for all the "intervals" such that "npoints" is fixed 21. and it is 28 spaces between each interval so I was thinking something like for i = [12:28:1356] where 1356-1376 is the last interval.

Respuestas (1)

KSSV
KSSV el 25 de Mzo. de 2020
I = [12 40 68] ;
iwant = cell(length(I),1) ;
for i = 1:length(I)
C = textscan(fid,'%.6f %.6f',npoints,'delimiter','\n', 'headerlines',I(i)-1);
p1 = C{1}*1e3;
y1 = C{2};
py1 = [p1 y1];
iwant{i} = py1 ;
end
  4 comentarios
Henning Eimstad
Henning Eimstad el 25 de Mzo. de 2020
Well, it works when I check for just I = 12, I = 40 etc, but it doesnt work with I = [12 40 68 ..... ]. Cant see why that should be a problem?
Henning Eimstad
Henning Eimstad el 25 de Mzo. de 2020
For some reason, the first value read for line 40 when I use I = [12 40] is from line 72 and not 40...

La pregunta está cerrada.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by