How to process and plot the data from the .txt files when the filenames rae not sequential?
3 ビュー (過去 30 日間)
古いコメントを表示
filename = 'Cyprus.2010.101.07.52.G06.txt';
delimiterIn = ' ';
% headerlinesIn = 1;
A = importdata(filename,delimiterIn);
Altitude = A(:,1);
Digisonde = A(:,2);
COSMIC = A(:,3);
plot(Altitude, Digisonde,'--blo', Altitude, COSMIC, ':r*')
title('Day Number:101 Year:2010 07:52 UT Station: Cyprus')
xlabel('Altitude (Km)')
ylabel('Electron Density (/m3)')
legend('Digisonde', 'COSMIC')
saveas(gcf,'101_2010.jpg')
This code gives plot for a single .txt file. But if I want to process all the .txt files in the same directory in a loop, how to proceed? The file names are not sequentially numbered. Please help.
2 件のコメント
Stephen23
2018 年 3 月 13 日
"The file names are not sequentially numbered"
What does this mean exactly? Please show some examples of the filenames. Also please tell us what order you want them processed in.
採用された回答
Rik
2018 年 3 月 13 日
編集済み: Rik
2018 年 3 月 13 日
You can use dir to generate a file list and apply any sort order you wish.
list=dir('Cyprus*.txt');
Edit: the code below is more ready-to-run
list=dir('Cyprus*.txt');
for n_file=1:length(list)
filename=list(n).name;
filename_edit=strrep(filename,'.',';');%make textscan easier
[part1,part2,~]=textscan(filename_edit,'Cyprus;%d;%d;%s');
delimiterIn = ' ';
% headerlinesIn = 1;
A = importdata(filename,delimiterIn);
Altitude = A(:,1);
Digisonde = A(:,2);
COSMIC = A(:,3);
plot(Altitude, Digisonde,'--blo', Altitude, COSMIC, ':r*')
title('Day Number:101 Year:2010 07:52 UT Station: Cyprus')
%you probably want to change the title here
xlabel('Altitude (Km)')
ylabel('Electron Density (/m3)')
legend('Digisonde', 'COSMIC')
saveas(gcf,sprintf('%03d_%04d.jpg',part2,part1))
end
3 件のコメント
Rik
2018 年 3 月 13 日
Have you read the documentation for textscan? It should be immediately apparent what mistake I made. As the error message tells you, textscan doesn't support 3 outputs, because it stores the result in a cell.
part=textscan(filename_edit,'Cyprus;%d;%d;%s');
saveas(gcf,sprintf('%03d_%04d.jpg',part{2},part{1}))
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Text Data Preparation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!