フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Read spesific rowintervals from .txt file and store them

2 ビュー (過去 30 日間)
Henning Eimstad
Henning Eimstad 2020 年 3 月 25 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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.

回答 (1 件)

KSSV
KSSV 2020 年 3 月 25 日
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 件のコメント
Henning Eimstad
Henning Eimstad 2020 年 3 月 25 日
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 2020 年 3 月 25 日
For some reason, the first value read for line 40 when I use I = [12 40] is from line 72 and not 40...

この質問は閉じられています。

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by