matlabtext-processingtext-parsingtextscan

How can I search a text file for specific words using matlab?


I need to write a program in matlab that searches for key words in a text file and then reads in what comes after those words, then continue searching.i tried to use fscanf or textscan but i must be missing something

I have a text file and the content looks like this:

Maria, female,24,married
       born in USA

George, male,32,married
        born in Germany    

There is an empty line before name George. For example, i want to read Maria and then read what comes after word Maria until the empty line.


Solution

  • You can use textscan to read the whole file, search for a keyword, extract the line found and then concatenate this line with the next line.

    Here is an example, looking for Maria

    fid = fopen('textfile.txt','r')
    C = textscan(fid, '%s','Delimiter','');
    fclose(fid)
    C = C{:};
    
    Lia = ~cellfun(@isempty, strfind(C,'Maria'));
    
    output = [C{find(Lia)} ',' C{find(Lia)+1}]
    

    which gives

    Maria, female,24,married,born in USA