Plotting data from text file
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Cagas Akalin
el 13 de Oct. de 2016
Comentada: Cagas Akalin
el 13 de Oct. de 2016
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 comentarios
KSSV
el 13 de Oct. de 2016
That's why error popped out. What are respective sizes? Mean while I will check your data.
Respuesta aceptada
KSSV
el 13 de Oct. de 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 comentarios
KSSV
el 13 de Oct. de 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') ;
Más respuestas (0)
Ver también
Categorías
Más información sobre Text Files en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!