Question

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.

Was it helpful?

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top