文字列と数値が混ざっており、列数が一定でないテキストファイルから数値データのみを読み込むにはどうすればよいですか?
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 9 Mai 2017
Réponse apportée : MathWorks Support Team
le 9 Mai 2017
文字列と数値が混ざっており、列数が一定でないテキストファイルから数値データのみを読み込むにはどうすればよいですか?
読み取りたいテキストファイル(data1.txt)は例えば以下のようなものです。
行によっては空白行が挿入されている箇所もあります。
-data log start-
ID = 1
0 1 2 3 4 5
1 2 3
2 4 6 8 10
ID = 2
0 1 2 3 4 5
1 6 8
2 5 6 7 8
-data log end-
Réponse acceptée
MathWorks Support Team
le 9 Mai 2017
fgetl関数を使用することで対応可能です。
読み取り結果を格納するのに十分なサイズの初期配列Cを用意し、fgetl関数で一行ずつデータを読み込みながら、先頭が数値データである行のときのみCに読み取り結果を格納します。
%数値配列の初期化
C = zeros(10,6);
fid = fopen('data1.txt');
k = 1;
tline = fgetl(fid);
while (~feof(fid))
if ~isempty(tline)
if ~isnan(str2double(tline(1)))
C(k,1:length(str2num(tline))) = str2num(tline);
k = k+1;
end
end
tline = fgetl(fid);
end
fclose(fid);
%結果表示
imagesc(C)
以上の方法で、文字列と数値が混ざっており、さらに列数がバラバラのテキストデータから数値データのみを読み込むことが可能です。
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 低水準ファイル I/O dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!