поиск конкретного слова в текстовом файле в Matlab - PullRequest
1 голос
/ 12 декабря 2011

Я хочу найти определенное слово в текстовом файле и вернуть его позицию. Этот код читает текст нормально ...

fid = fopen('jojo-1 .txt','r');
while 1
    tline = fgetl(fid);
    if ~ischar(tline)
       break
    end
end

но когда я добавляю этот код

U = strfind(tline, 'Term');

возвращает [], хотя в файле существует строка 'Term'.

Можете ли вы помочь мне?

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Для меня это работает нормально:

strfind(' ertret Term ewrwerewr', 'Term')

ans =

     9

Вы уверены, что «Term» действительно в вашей линии?

0 голосов
/ 19 февраля 2013

Я считаю, что ваш ~ischar(tline) создает проблемы, потому что код "ломается" , когда tline не является символом ... поэтому strfind не может ничего найти.

поэтому изменение мэра, которое я сделал, - это поиск строки в строке, которая была идентифицирована как строка с некоторыми символами.

Я попытался немного изменить ваш код в моем текстовом файле:

yyyy/mmdd(or -ddd)/hh.h):2011/-201/10.0UT  geog Lat/Long/Alt= 50.0/ 210.0/2000.0

NeQuick is used for topside Ne profile
URSI maps are used for the F2 peak density (NmF2)
CCIR maps are used for the F2 peak height (hmF2)
IRI-95 option is used for D-region
ABT-2009 option is used for the bottomside thickness parameter B0
The foF2 STORM model is turned on 
Scotto-97 no L   option is used for the F1 occurrence probability
TBT-2011 option is used for the electron temperature
RBY10+TTS03 option is used for ion composition

Peak Densities/cm-3: NmF2= 281323.9   NmF1=      0.0   NmE=   2403.3
Peak Heights/km:     hmF2=   312.47   hmF1=     0.00   hmE=   110.00

Solar Zenith Angle/degree                             109.6
Dip (Magnetic Inclination)/degree                     65.76
Modip (Modified Dip)/degree                           55.06
Solar Sunspot Number (12-months running mean) Rz12     57.5
Ionospheric-Effective Solar Index IG12                 63.3

TEC [1.E16 m-2] is obtained by numerical integration in 1km steps
  from 50 to 2000.0 km.  t is the percentage of TEC above the F peak.

-
H   ELECTRON DENSITY   TEMPERATURES         ION PERCENTAGES/%     1E16m-2
km  Ne/cm-3 Ne/NmF2 Tn/K  Ti/K  Te/K  O+  N+  H+ He+ O2+ NO+ Clust TEC t/%
0.0      -1 -1.000    -1    -1    -1  -1  -1  -1  -1  -1  -1  -1   7.7  75
5.0      -1 -1.000    -1    -1    -1  -1  -1  -1  -1  -1  -1  -1   7.7  75
10.0      -1 -1.000    -1    -1    -1  -1  -1  -1  -1  -1  -1  -1   7.7  75 

это выход из одной ионосферной модели, но это не важно:)

, поэтому я использовал следующий код Matlab, чтобы найти строку TEMPERATURES

out = fopen('fort.7');                      % Open function
counter = 0;                                % line counter (sloppy but works)
while 1                                     % infinite loop
    tline = fgetl(out);                     % read a line
    counter = counter + 1;                  % we are one line further
    if ischar(tline)                        % if the line is string 
        U = strfind(tline, 'TEMPERATURES'); % where the string start (if at all)
        if isfinite(U) == 1;                % if it is a number actually
            break                           % we found it, lets go home
        end
     end
 end

результаты:

counter = 26
U = 27
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...