如何使用matlab搜索文本文件中的特定单词?

如何使用matlab搜索文本文件中的特定单词?,matlab,text-processing,text-parsing,textscan,Matlab,Text Processing,Text Parsing,Textscan,我需要在matlab中编写一个程序,在文本文件中搜索关键词,然后读入这些关键词后面的内容,然后继续搜索。我尝试使用fscanf或textscan,但我肯定遗漏了什么 我有一个文本文件,内容如下: Maria, female,24,married born in USA George, male,32,married born in Germany 名字乔治前有一行空行。 例如,我想先读Maria,然后再读单词Maria后面的内容,直到出现空行。您可以使用

我需要在matlab中编写一个程序,在文本文件中搜索关键词,然后读入这些关键词后面的内容,然后继续搜索。我尝试使用fscanf或textscan,但我肯定遗漏了什么

我有一个文本文件,内容如下:

Maria, female,24,married
       born in USA

George, male,32,married
        born in Germany    
名字乔治前有一行空行。
例如,我想先读Maria,然后再读单词Maria后面的内容,直到出现空行。

您可以使用
textscan
读取整个文件,搜索关键字,提取找到的行,然后将此行与下一行连接起来

下面是一个示例,查找
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}]

Maria, female,24,married,born in USA

您可以使用
textscan
读取整个文件,搜索关键字,提取找到的行,然后将此行与下一行连接起来

下面是一个示例,查找
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}]

Maria, female,24,married,born in USA

你可能不想听这个,但是Matlab很难成为文本处理的合适工具。我会推荐第一个perl(因为我已经习惯了),但由于很多人不喜欢它,我会说python也是一个不错的选择,而且比Matlab好得多。这个问题对我来说并不清楚。。。你在期待什么?您是否希望使用不同的方法来提高搜索或阅读的速度?或者您希望有一种方法来解析texscan的输出?另外,当您说我试图使用fscanf或textscan,但我肯定遗漏了什么,否则我们无法帮助您。请使用textscan将文件读取到一个单元格行数组中。然后使用strcmp和length来识别以Maria开头的行和空白行,您可以使用这些索引来提取所需的行。用textscan发布代码将有助于确定它为什么不起作用。你可能不想听这个,但Matlab很难成为文本处理的正确工具。我会推荐第一个perl(因为我已经习惯了),但由于很多人不喜欢它,我会说python也是一个不错的选择,而且比Matlab好得多。这个问题对我来说并不清楚。。。你在期待什么?您是否希望使用不同的方法来提高搜索或阅读的速度?或者您希望有一种方法来解析texscan的输出?另外,当您说我试图使用fscanf或textscan,但我肯定遗漏了什么,否则我们无法帮助您。请使用textscan将文件读取到一个单元格行数组中。然后使用strcmp和length来识别以Maria开头的行和空白行,您可以使用这些索引来提取所需的行。用textscan发布您的代码将有助于确定它不起作用的原因。