how to extract data from ascii file?

12 次查看(过去 30 天)
i have been given ascii file ..
how to read data from it and plot the graphs
in this file around 2000 data is present ...and i need only 1001 data in such a way that i don't lose the entire data only some of them.
for example from freq=8-12GHz there are data like
freq parameter
8 -0.00000003
8.001 -0.2233652
8.002 -2.0000012
;
;
10.222 -2.22333
;
;
12 -2.0001123
so basically from 8-12 GHz all the data but losing very few data
2018a version

回答(1 个)

Voss
Voss 2022-5-25
data = readmatrix('qwer.txt')
data = 31×2
8.0000 0.0003 8.0100 0.0003 8.0200 0.0003 8.0300 0.0003 8.0400 0.0004 8.0500 0.0004 8.0600 0.0004 8.0700 0.0004 8.0800 0.0006 8.0900 0.0008
plot(data(:,1),data(:,2),'.-')
"in this file around 2000 data is present ...and i need only 1001 data"
data = data(1:2:end,:) % keep rows 1, 3, 5, ...
data = 16×2
8.0000 0.0003 8.0200 0.0003 8.0400 0.0004 8.0600 0.0004 8.0800 0.0006 9.0000 0.0009 9.0200 0.0001 9.0400 0.0006 9.0600 0.0004 9.8000 0.0045
hold on
plot(data(:,1),data(:,2),'or')
  3 个评论
Voss
Voss 2022-5-25
Please see this answer:
https://www.mathworks.com/matlabcentral/answers/57446-faq-how-can-i-process-a-sequence-of-files#answer_69523
You can alter the code to read just the files you want.
Voss
Voss 2022-5-25
For instance, you might store Freq and Sparamters from the files in separate fields in the struct array returned from dir:
files = dir('*.txt');
disp({files.name});
{'qwer.txt'} {'qwer2.txt'} {'qwer3.txt'}
files = files(1:2:end); % just keep every other file: files(1), files(3), ...
disp({files.name});
{'qwer.txt'} {'qwer3.txt'}
for ii = 1:numel(files)
temp = readmatrix(files(ii).name);
files(ii).xdata = temp(:,1);
files(ii).ydata = temp(:,2);
end
plot_args = [{files.xdata}; {files.ydata}];
plot(plot_args{:});

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by