Plotting data from text file
1 view (last 30 days)
Show older comments
Dear All,
The problem that I am dealing with is to obtain a plot from a text file has 5615917 lines of data. The shorthaned content of the data file that I am dealing with looks like as follows.
channel names:
09/07/2016 06:20:09 PM - Thermocouple - SC1Mod2_ai2
start times:
9/7/2016 18:20:13.504689
dt:
0.010000
data:
8.857533E+1
8.857165E+1
8.856430E+1
8.857165E+1
8.856798E+1
8.857165E+1
8.856798E+1
8.857900E+1
8.856430E+1
8.857165E+1
8.857165E+1
8.856798E+1
8.856430E+1
8.856798E+1
.
.
.
2.635587E+1
2.635209E+1
2.635965E+1
2.635587E+1
2.635209E+1
2.635965E+1
2.635965E+1
2.635209E+1
2.635587E+1
2.635965E+1
2.634832E+1
and the code that I use is
clear all
close all
clc
fileID = fopen('ThermocoupleCombined.txt','r');
Crude_Data = textscan(fileID,'%f','HeaderLines','2');
fclose(fileID);
C = transpose(0:0.01:0.01*(length(Crude_Data{1})-1));
plot(C,Crude_Data{1})
The code above draws the data up to 76757 and the rest is not included inside "Crude_Data" and not plotted.
Can you please give me your suggestions regarding the problem I have?
8 Comments
KSSV
on 13 Oct 2016
That's why error popped out. What are respective sizes? Mean while I will check your data.
Accepted Answer
KSSV
on 13 Oct 2016
Dear friend
Check the line 76807..there is change in the format.....So MATLAB is plotting fine from line 8 to 76807. You have to change the pattern of reading the file using textscan().
2 Comments
KSSV
on 13 Oct 2016
fileID = fopen('ThermocoupleCombined.txt','r');
% Crude_Data = textscan(fileID,'%f','HeaderLines','2');
% Crude_Data = textscan(fileID,'%f','HeaderLines',7);
Crude_Data = textscan(fileID,'%s','delimiter','\n');
C = Crude_Data{1} ;
fclose(fileID);
IdxC = strfind(C, 'data');
Idx = find(not(cellfun('isempty', IdxC)));
% split the data
data1 = C(Idx(1)+1:Idx(2)-9) ;
data1 = data1(~cellfun('isempty',data1)) ; % remove empty cells if any
data2 = C(Idx(2)+1:end) ;
% convert to double
data1 = sprintf('%s*', data1{:});
data1 = sscanf(data1, '%f*');
t1 = 0:0.01:0.01*(length(data1)-1);
data2 = sprintf('%s*', data2{:});
data2 = sscanf(data2, '%f*');
t2 = 0:0.01:0.01*(length(data2)-1);
plot(t1,data1,'r') ;
hold on
plot(t2,data2,'b') ;
More Answers (0)
See Also
Categories
Find more on Data Import and Export in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!