3
« en: Lunes 27 de Abril de 2009, 11:23 »
Holas,
Estoy embolatada tratatando de leer el siguiente archivo de texto (ver mas abajo). El objetivo de leer este archivo de texto es graficar cada set de datos "Theta_m" vs "Y" en una misma grafica.
Como hacer para reconocer la tabla de datos de cada set de datos, saltando los textos entre cada set de datos?
Por favor alguien que me ayude a resolver esto... Mas abajo pongo el script que hice, pero no es eficiente porque tengo diferentes archivos de texto como este pero tienen un numero variable de campos que componen las columnas "Theta_m" vs "Y"....
Muchas gracias de antemano,
CI.
************************************************************************************************
X = 13500.
Z = -0.50000
Solids phase = 1
Time = 0.0000
Y Theta_m
78500. 0.32713E+06
79500. 0.32713E+06
80500. 0.32713E+06
81500. 0.32713E+06
82500. 0.32713E+06
83500. 0.32713E+06
84500. 0.32713E+06
85500. 0.32713E+06
86500. 0.32713E+06
87500. 0.32713E+06
88500. 0.32713E+06
89500. 0.32713E+06
90500. 0.32713E+06
91500. 0.32713E+06
92500. 0.32713E+06
93500. 0.32713E+06
94500. 0.32713E+06
95500. 0.32713E+06
96500. 0.32713E+06
97500. 0.32713E+06
98500. 0.32713E+06
Time = 100.00
Y Theta_m
78500. 0.32713E+06
79500. 0.32713E+06
80500. 0.32713E+06
81500. 0.32713E+06
82500. 0.32713E+06
83500. 0.32713E+06
84500. 0.32713E+06
85500. 0.32713E+06
86500. 0.32713E+06
87500. 0.32713E+06
88500. 0.32713E+06
89500. 0.32713E+06
90500. 0.32713E+06
91500. 0.32713E+06
92500. 0.32713E+06
93500. 0.32713E+06
94500. 0.32713E+06
95500. 0.32713E+06
96500. 0.32713E+06
97500. 0.32713E+06
98500. 0.32713E+06
Time = 200.00
Y Theta_m
78500. 0.32713E+06
79500. 0.32713E+06
80500. 0.32713E+06
81500. 0.32713E+06
82500. 0.32713E+06
83500. 0.32713E+06
84500. 0.32713E+06
85500. 0.32713E+06
86500. 0.32713E+06
87500. 0.32713E+06
88500. 0.32713E+06
89500. 0.32713E+06
90500. 0.32713E+06
91500. 0.32713E+06
92500. 0.32713E+06
93500. 0.32713E+06
94500. 0.32713E+06
95500. 0.32713E+06
96500. 0.32713E+06
97500. 0.32713E+06
98500. 0.32713E+06
Time = 300.00
Y Theta_m
78500. 0.32713E+06
79500. 0.32713E+06
80500. 0.32713E+06
81500. 0.32713E+06
82500. 0.32713E+06
83500. 0.32713E+06
84500. 0.32713E+06
85500. 0.32713E+06
86500. 0.32713E+06
87500. 0.32713E+06
88500. 0.32713E+06
89500. 0.32713E+06
90500. 0.32713E+06
91500. 0.32713E+06
92500. 0.32713E+06
93500. 0.32713E+06
94500. 0.32713E+06
95500. 0.32713E+06
96500. 0.32713E+06
97500. 0.32713E+06
98500. 0.32713E+06
Time = 400.00
Y Theta_m
78500. 0.32713E+06
79500. 0.32713E+06
80500. 0.32713E+06
81500. 0.32713E+06
82500. 0.32713E+06
83500. 0.32713E+06
84500. 0.32713E+06
85500. 0.32713E+06
86500. 0.32713E+06
87500. 0.32713E+06
88500. 0.32713E+06
89500. 0.32713E+06
90500. 0.32713E+06
91500. 0.32713E+06
92500. 0.32713E+06
93500. 0.32713E+06
94500. 0.32713E+06
95500. 0.32713E+06
96500. 0.32713E+06
97500. 0.32713E+06
98500. 0.32714E+06
**************************************************************************************************************************
Script:
clear all,
% opening the file
fid = fopen('Mug_profile_x15_y80100_t01000.txt', 'r');
% reading the file and assigning variables
xcoor=fscanf(fid,'%s',3)
zcoor=fscanf(fid,'%s',3)
solids=fscanf(fid,'%s',4)
Time1=fscanf(fid,'%s',3)
y=fscanf(fid,'%s',1)
var=fscanf(fid,'%s',1)
% First data set
y1=fscanf(fid,'%s',1)
x1=fscanf(fid,'%s',1)
y2=fscanf(fid,'%s',1)
x2=fscanf(fid,'%s',1)
y3=fscanf(fid,'%s',1)
x3=fscanf(fid,'%s',1)
y4=fscanf(fid,'%s',1)
x4=fscanf(fid,'%s',1)
y5=fscanf(fid,'%s',1)
x5=fscanf(fid,'%s',1)
y6=fscanf(fid,'%s',1)
x6=fscanf(fid,'%s',1)
y7=fscanf(fid,'%s',1)
x7=fscanf(fid,'%s',1)
y8=fscanf(fid,'%s',1)
x8=fscanf(fid,'%s',1)
y9=fscanf(fid,'%s',1)
x9=fscanf(fid,'%s',1)
y10=fscanf(fid,'%s',1)
x10=fscanf(fid,'%s',1)
y11=fscanf(fid,'%s',1)
x11=fscanf(fid,'%s',1)
y12=fscanf(fid,'%s',1)
x12=fscanf(fid,'%s',1)
y13=fscanf(fid,'%s',1)
x13=fscanf(fid,'%s',1)
y14=fscanf(fid,'%s',1)
x14=fscanf(fid,'%s',1)
y15=fscanf(fid,'%s',1)
x15=fscanf(fid,'%s',1)
y16=fscanf(fid,'%s',1)
x16=fscanf(fid,'%s',1)
y17=fscanf(fid,'%s',1)
x17=fscanf(fid,'%s',1)
y18=fscanf(fid,'%s',1)
x18=fscanf(fid,'%s',1)
y19=fscanf(fid,'%s',1)
x19=fscanf(fid,'%s',1)
y20=fscanf(fid,'%s',1)
x20=fscanf(fid,'%s',1)
y21=fscanf(fid,'%s',1)
x21=fscanf(fid,'%s',1)
% array
x=[str2num(x1);str2num(x2);str2num(x3);str2num(x4);str2num(x5);str2num(x6);str2num(x7);str2num(x8);str2num(x9);str2num(x10);str2num(x11);str2num(x12);str2num(x16);str2num(x17);str2num(x18);str2num(x19);str2num(x20);str2num(x21)]
y=[str2num(y1);str2num(y2);str2num(y3);str2num(y4);str2num(y5);str2num(y6);str2num(y7);str2num(y8);str2num(y9);str2num(y10);str2num(y11);str2num(y12);str2num(y16);str2num(y17);str2num(y18);str2num(y19);str2num(y20);str2num(y21)]
figure(1)
subplot(1,5,1),plot(x/10,y/100,'.'),title([Time1 ' ' xcoor]),ylabel('Height above the reservoir (m)'),xlabel('Viscosity (Pa.s)')
hold on
%2nd data set
Time2=fscanf(fid,'%s',3)
y=fscanf(fid,'%s',1)
var=fscanf(fid,'%s',1)
y1=fscanf(fid,'%s',1)
x1=fscanf(fid,'%s',1)
y2=fscanf(fid,'%s',1)
x2=fscanf(fid,'%s',1)
y3=fscanf(fid,'%s',1)
x3=fscanf(fid,'%s',1)
y4=fscanf(fid,'%s',1)
x4=fscanf(fid,'%s',1)
y5=fscanf(fid,'%s',1)
x5=fscanf(fid,'%s',1)
y6=fscanf(fid,'%s',1)
x6=fscanf(fid,'%s',1)
y7=fscanf(fid,'%s',1)
x7=fscanf(fid,'%s',1)
y8=fscanf(fid,'%s',1)
x8=fscanf(fid,'%s',1)
y9=fscanf(fid,'%s',1)
x9=fscanf(fid,'%s',1)
y10=fscanf(fid,'%s',1)
x10=fscanf(fid,'%s',1)
y11=fscanf(fid,'%s',1)
x11=fscanf(fid,'%s',1)
y12=fscanf(fid,'%s',1)
x12=fscanf(fid,'%s',1)
y13=fscanf(fid,'%s',1)
x13=fscanf(fid,'%s',1)
y14=fscanf(fid,'%s',1)
x14=fscanf(fid,'%s',1)
y15=fscanf(fid,'%s',1)
x15=fscanf(fid,'%s',1)
y16=fscanf(fid,'%s',1)
x16=fscanf(fid,'%s',1)
y17=fscanf(fid,'%s',1)
x17=fscanf(fid,'%s',1)
y18=fscanf(fid,'%s',1)
x18=fscanf(fid,'%s',1)
y19=fscanf(fid,'%s',1)
x19=fscanf(fid,'%s',1)
y20=fscanf(fid,'%s',1)
x20=fscanf(fid,'%s',1)
y21=fscanf(fid,'%s',1)
x21=fscanf(fid,'%s',1)
% array
x2=[str2num(x1);str2num(x2);str2num(x3);str2num(x4);str2num(x5);str2num(x6);str2num(x7);str2num(x8);str2num(x9);str2num(x10);str2num(x11);str2num(x12);str2num(x16);str2num(x17);str2num(x18);str2num(x19);str2num(x20);str2num(x21)]
y2=[str2num(y1);str2num(y2);str2num(y3);str2num(y4);str2num(y5);str2num(y6);str2num(y7);str2num(y8);str2num(y9);str2num(y10);str2num(y11);str2num(y12);str2num(y16);str2num(y17);str2num(y18);str2num(y19);str2num(y20);str2num(y21)]
figure(1)
subplot(1,5,2),plot(x2/10,y2/100,'.'),title([Time2 ' ' xcoor]),ylabel('Height above the reservoir (m)'),xlabel('Viscosity (Pa.s)')
hold on
%3
Time3=fscanf(fid,'%s',3)
y=fscanf(fid,'%s',1)
var=fscanf(fid,'%s',1)
y1=fscanf(fid,'%s',1)
x1=fscanf(fid,'%s',1)
y2=fscanf(fid,'%s',1)
x2=fscanf(fid,'%s',1)
y3=fscanf(fid,'%s',1)
x3=fscanf(fid,'%s',1)
y4=fscanf(fid,'%s',1)
x4=fscanf(fid,'%s',1)
y5=fscanf(fid,'%s',1)
x5=fscanf(fid,'%s',1)
y6=fscanf(fid,'%s',1)
x6=fscanf(fid,'%s',1)
y7=fscanf(fid,'%s',1)
x7=fscanf(fid,'%s',1)
y8=fscanf(fid,'%s',1)
x8=fscanf(fid,'%s',1)
y9=fscanf(fid,'%s',1)
x9=fscanf(fid,'%s',1)
y10=fscanf(fid,'%s',1)
x10=fscanf(fid,'%s',1)
y11=fscanf(fid,'%s',1)
x11=fscanf(fid,'%s',1)
y12=fscanf(fid,'%s',1)
x12=fscanf(fid,'%s',1)
y13=fscanf(fid,'%s',1)
x13=fscanf(fid,'%s',1)
y14=fscanf(fid,'%s',1)
x14=fscanf(fid,'%s',1)
y15=fscanf(fid,'%s',1)
x15=fscanf(fid,'%s',1)
y16=fscanf(fid,'%s',1)
x16=fscanf(fid,'%s',1)
y17=fscanf(fid,'%s',1)
x17=fscanf(fid,'%s',1)
y18=fscanf(fid,'%s',1)
x18=fscanf(fid,'%s',1)
y19=fscanf(fid,'%s',1)
x19=fscanf(fid,'%s',1)
y20=fscanf(fid,'%s',1)
x20=fscanf(fid,'%s',1)
y21=fscanf(fid,'%s',1)
x21=fscanf(fid,'%s',1)
% array
x3=[str2num(x1);str2num(x2);str2num(x3);str2num(x4);str2num(x5);str2num(x6);str2num(x7);str2num(x8);str2num(x9);str2num(x10);str2num(x11);str2num(x12);str2num(x16);str2num(x17);str2num(x18);str2num(x19);str2num(x20);str2num(x21)]
y3=[str2num(y1);str2num(y2);str2num(y3);str2num(y4);str2num(y5);str2num(y6);str2num(y7);str2num(y8);str2num(y9);str2num(y10);str2num(y11);str2num(y12);str2num(y16);str2num(y17);str2num(y18);str2num(y19);str2num(y20);str2num(y21)]
figure(1)
subplot(1,5,3),plot(x3/10,y3/100,'.'),title([Time3 ' ' xcoor]),ylabel('Height above the reservoir (m)'),xlabel('Viscosity (Pa.s)')
hold on
% 4th data set
Time4=fscanf(fid,'%s',3)
y=fscanf(fid,'%s',1)
var=fscanf(fid,'%s',1)
y1=fscanf(fid,'%s',1)
x1=fscanf(fid,'%s',1)
y2=fscanf(fid,'%s',1)
x2=fscanf(fid,'%s',1)
y3=fscanf(fid,'%s',1)
x3=fscanf(fid,'%s',1)
y4=fscanf(fid,'%s',1)
x4=fscanf(fid,'%s',1)
y5=fscanf(fid,'%s',1)
x5=fscanf(fid,'%s',1)
y6=fscanf(fid,'%s',1)
x6=fscanf(fid,'%s',1)
y7=fscanf(fid,'%s',1)
x7=fscanf(fid,'%s',1)
y8=fscanf(fid,'%s',1)
x8=fscanf(fid,'%s',1)
y9=fscanf(fid,'%s',1)
x9=fscanf(fid,'%s',1)
y10=fscanf(fid,'%s',1)
x10=fscanf(fid,'%s',1)
y11=fscanf(fid,'%s',1)
x11=fscanf(fid,'%s',1)
y12=fscanf(fid,'%s',1)
x12=fscanf(fid,'%s',1)
y13=fscanf(fid,'%s',1)
x13=fscanf(fid,'%s',1)
y14=fscanf(fid,'%s',1)
x14=fscanf(fid,'%s',1)
y15=fscanf(fid,'%s',1)
x15=fscanf(fid,'%s',1)
y16=fscanf(fid,'%s',1)
x16=fscanf(fid,'%s',1)
y17=fscanf(fid,'%s',1)
x17=fscanf(fid,'%s',1)
y18=fscanf(fid,'%s',1)
x18=fscanf(fid,'%s',1)
y19=fscanf(fid,'%s',1)
x19=fscanf(fid,'%s',1)
y20=fscanf(fid,'%s',1)
x20=fscanf(fid,'%s',1)
y21=fscanf(fid,'%s',1)
x21=fscanf(fid,'%s',1)
% array
x4=[str2num(x1);str2num(x2);str2num(x3);str2num(x4);str2num(x5);str2num(x6);str2num(x7);str2num(x8);str2num(x9);str2num(x10);str2num(x11);str2num(x12);str2num(x16);str2num(x17);str2num(x18);str2num(x19);str2num(x20);str2num(x21)]
y4=[str2num(y1);str2num(y2);str2num(y3);str2num(y4);str2num(y5);str2num(y6);str2num(y7);str2num(y8);str2num(y9);str2num(y10);str2num(y11);str2num(y12);str2num(y16);str2num(y17);str2num(y18);str2num(y19);str2num(y20);str2num(y21)]
figure(1)
subplot(1,5,4),plot(x4/10,y4/100,'.'),title([Time4 ' ' xcoor]),ylabel('Height above the reservoir (m)'),xlabel('Viscosity (Pa.s)')
hold on
% 5th data set
Time5=fscanf(fid,'%s',3)
y=fscanf(fid,'%s',1)
var=fscanf(fid,'%s',1)
y1=fscanf(fid,'%s',1)
x1=fscanf(fid,'%s',1)
y2=fscanf(fid,'%s',1)
x2=fscanf(fid,'%s',1)
y3=fscanf(fid,'%s',1)
x3=fscanf(fid,'%s',1)
y4=fscanf(fid,'%s',1)
x4=fscanf(fid,'%s',1)
y5=fscanf(fid,'%s',1)
x5=fscanf(fid,'%s',1)
y6=fscanf(fid,'%s',1)
x6=fscanf(fid,'%s',1)
y7=fscanf(fid,'%s',1)
x7=fscanf(fid,'%s',1)
y8=fscanf(fid,'%s',1)
x8=fscanf(fid,'%s',1)
y9=fscanf(fid,'%s',1)
x9=fscanf(fid,'%s',1)
y10=fscanf(fid,'%s',1)
x10=fscanf(fid,'%s',1)
y11=fscanf(fid,'%s',1)
x11=fscanf(fid,'%s',1)
y12=fscanf(fid,'%s',1)
x12=fscanf(fid,'%s',1)
y13=fscanf(fid,'%s',1)
x13=fscanf(fid,'%s',1)
y14=fscanf(fid,'%s',1)
x14=fscanf(fid,'%s',1)
y15=fscanf(fid,'%s',1)
x15=fscanf(fid,'%s',1)
y16=fscanf(fid,'%s',1)
x16=fscanf(fid,'%s',1)
y17=fscanf(fid,'%s',1)
x17=fscanf(fid,'%s',1)
y18=fscanf(fid,'%s',1)
x18=fscanf(fid,'%s',1)
y19=fscanf(fid,'%s',1)
x19=fscanf(fid,'%s',1)
y20=fscanf(fid,'%s',1)
x20=fscanf(fid,'%s',1)
y21=fscanf(fid,'%s',1)
x21=fscanf(fid,'%s',1)
% array
x5=[str2num(x1);str2num(x2);str2num(x3);str2num(x4);str2num(x5);str2num(x6);str2num(x7);str2num(x8);str2num(x9);str2num(x10);str2num(x11);str2num(x12);str2num(x16);str2num(x17);str2num(x18);str2num(x19);str2num(x20);str2num(x21)]
y5=[str2num(y1);str2num(y2);str2num(y3);str2num(y4);str2num(y5);str2num(y6);str2num(y7);str2num(y8);str2num(y9);str2num(y10);str2num(y11);str2num(y12);str2num(y16);str2num(y17);str2num(y18);str2num(y19);str2num(y20);str2num(y21)]
figure(1)
subplot(1,5,5),plot(x5/10,y5/100,'.'),title([Time5 ' ' xcoor]),ylabel('Height above the reservoir (m)'),xlabel('Viscosity (Pa.s)')
hold on
fclose(fid)