Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Read spesific rowintervals from .txt file and store them

2 vues (au cours des 30 derniers jours)
Henning Eimstad
Henning Eimstad le 25 Mar 2020
Clôturé : MATLAB Answer Bot le 20 Août 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.

Réponses (1)

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

Cette question est clôturée.

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by