2012-05-10 5 views
0

Я хотел бы извлечь данные в серых областях из текстового файла ниже, и я хотел бы использовать matlab. Невозможно подсчитать количество строк в заголовке, потому что это изменяется каждый раз, когда я генерирую текстовый файл.извлечь данные из текстового файла в matlab

Это должно быть что-то вроде этого:

%open the file   
fin = fopen('panair.out'); 

buffer = fgetl(fin)  
if buffer(2:17)=='totals for column' 
j=1 
for i=1:3 
    tmp=fgetl(fin) 
end 
    buffer=fgetl(fin); 
    temp = strread(38:44); 
    wingsection.area(j,k)= strread(temp, '%7.4f'); 
    temp = strread(38:44); 
    wingsection.fx(j,k)= strread(temp, '%7.4f'); 
    temp = strread(38:44); 
    wingsection.fy(j,k)= strread(temp, '%7.4f'); 
    temp = strread(38:44); 
    wingsection.fz(j,k)= strread(temp, '%7.4f'); 
    temp = strread(38:44); 
    wingsection.mx(j,k)= strread(temp, '%7.4f'); 
    temp = strread(38:44); 
    wingsection.my(j,k)= strread(temp, '%7.4f'); 
    temp = strread(38:44); 
    wingsection.mz(j,k)= strread(temp, '%7.4f'); 
    j=j+1; 
    else 
end 

%close file 
fclose(fin); 

или, может быть TextScan быстрее?

312 245 0,3625 0,4312 -0,0967 0,0862 0,1299 -0,7494 0,3114 -0,5276 0,0011 0,0011 0,0023 0,4088 0,9159 -0,9661 0,0415 0,0431 0,9091 -0,9661 0,0415 0,1949 -0,7522 -0,7608 -0,7487 0,3000 0,9848 0,0000 0,1736 -0,0431 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 -0,0050 0,5227 -0,5276 0,0000 1,3273 0,8525 0,8218 0,0000 0,1949 -0,7522 -0,7608 -0,7487

313 246 0,2859 0,4577 -0,0762 0,0604 0,1983 -0,8678 0,4854 -0,5023 0,0008 0,0012 0,0018 0,4795 0,9985 -1,1277 0,2626 0,0302 0,9998 -1,1277 0,2626 -0,0605 -1,3393 -1,3402 -1,3003 0,3000 0,9848 0. 0000 0,1736 -0,0302 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 -0,0117 0,4906 -0,5023 0,0000 1,5297 0,8714 1,0139 0,0000 -0,0605 -1,3393 -1,3402 -1,3003

314 247 0,1572 0,4842 -0,0419 0,0224 0,4594 -1,1558 1,2420 -0,3774 0,0005 0,0012 0,0010 0,8019 1,3070 -1,4401 1,1865 0,0112 1,3389 -1,4401 1,1865 -1,0491 -3,9991 -4,2495 -3,8789 0,3000 0,9848 0,0000 0,1736 -0,0112 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 0,0002 0,3776 -0,3774 0,0000 2,2966 0,9260 1,7576 0,0000 -1,0491 -3,9991 -4,2495 - 3.8789

315 247 0.0724 0.4974 -0.0192 -0.0052 0.5621 -1.6209 1.7536 -0.315 4 0,0005 0,0012 0,0010 1,2086 1,4161 -1,8573 1,7344 -0,0026 1,4587 -1,8573 1,7344 -1,4755 -7,0415 -7,5368 -6,3779 0,3000 0,9848 0,0000 0,1736 0,0026 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 0,0636 0,3789 -0,3154 0,0000 2,9292 0,9254 2,4532 0,0000 -1,4755 - 7,0415 -7,5368 -6,3779 0 * б * для-мама-нетто # - 1 сила/момент данных для сети 1

totals for column  1   area   fx   fy   fz   mx   my   mz 


           0.03774  -0.08047  0.04658  0.22649  0.09508  0.03271  0.02334 
           0.03774  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03774  -0.08047  0.04658  0.22649  0.09508  0.03271  0.02334 


totals for column  2   area   fx   fy   fz   mx   my   mz 


           0.03099  0.00955  0.01410  0.12176  0.05164  0.01277  -0.00630 
           0.03099  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03099  0.00955  0.01410  0.12176  0.05164  0.01277  -0.00630 


totals for column  3   area   fx   fy   fz   mx   my   mz 


           0.03050  0.01257  0.00796  0.06866  0.03008  0.00319  -0.00604 
           0.03050  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03050  0.01257  0.00796  0.06866  0.03008  0.00319  -0.00604 


totals for column  4   area   fx   fy   fz   mx   my   mz 


           0.03042  0.01116  0.00600  0.04510  0.02068  -0.00067  -0.00499 
           0.03042  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03042  0.01116  0.00600  0.04510  0.02068  -0.00067  -0.00499 

312 245 0,3625 0,4312 -0,0967 0,0862 0,1299 -0,7494 0,3114 -0,5276 0,0011 0,0011 0,0023 0,4088 0,9159 -0,9661 0,0415 0,0431 0,9091 -0,9661 0,0415 0,1949 -0,7522 -0,7 608 -0,7487 0,3000 0,9848 0,0000 0,1736 -0,0431 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 -0,0050 0,5227 -0,5276 0,0000 1,3273 0,8525 0,8218 0,0000 0,1949 -0,7522 -0,7608 -0,7487

313 246 0,2859 0,4577 -0,0762 0,0604 0,1983 -0,8678 0,4854 -0,5023 0,0008 0,0012 0,0018 0,4795 0,9985 -1,1277 0,2626 0,0302 0,9998 -1,1277 0,2626 -0,0605 -1,3393 -1,3402 -1,3003 0,3000 0,9848 0,0000 0,1736 -0,0302 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 -0,0117 0,4906 -0,5023 0,0000 1,5297 0,8714 1,0139 0,0000 - 0,0605 -1,3393 -1,3402 -1,3003

314 24 7 0,1572 0,4842 -0,0419 0,0224 0,4594 -1,158 1,2420 -0,3774 0,0005 0,0012 0,0010 0,8019 1,3070 -1,4401 1,1865 0,0112 1,3389 -1,4401 1,1865 -1,0491 -3.9991 -4,2495 -3.8789 0,3000 0,9848 0,0000 0,1736 -0,0112 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 0,0002 0,3776 -0,3774 0,0000 2,2966 0,9260 1,7576 0,0000 -1,0491 -3,9991 -4,2495 -3,8789

315 247 0,0724 0,4974 -0,0192 -0,0052 0,5621 -1,6209 1,7536 - 0,3154 0,0005 0,0012 0,0010 1,2086 1,4161 -1,8573 1,7344 -0,0026 1,4587 -1,8573 1,7344 -1,4755 -7,0415 -7,5368 -6,3779 0,3000 0,9848 0,0000 0,1736 0,0026 0,9848 0,0000 0,1736 0,0000 0,0000 0,0000 0,0000 0,0636 0,3789 -0,3154 0,0000 2,9292 0,9254 2,4532 0,0000 -1,4755 - 7.0415 -7.5368 -6.3779 0 * b * для-mom-net # - 1 сила/данные момента для сети 2

totals for column  1   area   fx   fy   fz   mx   my   mz 


           0.03774  -0.08047  0.04658  0.22649  0.09508  0.03271  0.02334 
           0.03774  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03774  -0.08047  0.04658  0.22649  0.09508  0.03271  0.02334 


totals for column  2   area   fx   fy   fz   mx   my   mz 


           0.03099  0.00955  0.01410  0.12176  0.05164  0.01277  -0.00630 
           0.03099  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03099  0.00955  0.01410  0.12176  0.05164  0.01277  -0.00630 


totals for column  3   area   fx   fy   fz   mx   my   mz 


           0.03050  0.01257  0.00796  0.06866  0.03008  0.00319  -0.00604 
           0.03050  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03050  0.01257  0.00796  0.06866  0.03008  0.00319  -0.00604 


totals for column  4   area   fx   fy   fz   mx   my   mz 


           0.03042  0.01116  0.00600  0.04510  0.02068  -0.00067  -0.00499 
           0.03042  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000 
           0.03042  0.01116  0.00600  0.04510  0.02068  -0.00067  -0.00499 

ответ

0

Пробег fscanf. В частности:

A = fscanf(fileID, format, sizeA) читает sizeA элементов в A, и помещает указатель файла после того, как последний элемент чтения. sizeA может быть целым числом или может иметь форму [m,n].

+0

вот файл: [link] (http://goo.gl/naJHA). Я хотел бы извлечь красные значения. например, площадь = [0,03374 0,03099 0,03050 ... 0,0394 0,03099 0,03050] fx = [- 0,08047 0,00955 0,01257 ...; - 0,08047 0,00955 0,01257] – lamber

Смежные вопросы