Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

Read spesific rowintervals from .txt file and store them

2 Ansichten (letzte 30 Tage)
Henning Eimstad
Henning Eimstad am 25 Mär. 2020
Geschlossen: MATLAB Answer Bot am 20 Aug. 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.

Antworten (1)

KSSV
KSSV am 25 Mär. 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 Kommentare
Henning Eimstad
Henning Eimstad am 25 Mär. 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 am 25 Mär. 2020
For some reason, the first value read for line 40 when I use I = [12 40] is from line 72 and not 40...

Diese Frage ist geschlossen.

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by