2016-07-22 98 views
0

我有Excel CSV file它有一些文本和数据。在CSV file,例如,我有声明,如下(我有每个语句后很多报表和数据下列2所陈述只是一个例子。):在CSV文件中读取某种格式的文本

1_Q6 - Walmart (https://www.glassdoor.com) 
5_Q5 - Phillips 66 (https://www.glassdoor.com) 

所以,我想读的话只从"Walmart"第一行的第一条语句和第二行第二条语句的"Phillips 66"。正如你所看到的,这两个词的位置都有一个模式。它由一个连字符和空格继承。它具有像模式下:

_Qnumber - "The word I am interested in" (

因此,要总结,我想读由"_Qnumber -"成功和" ("前面的单词。那"number"总是会是5 or 6

我希望你能得到我想要达到的。我已经尝试使用xlsreadtextscan但没有成功。

非常感谢您的高级帮助。

回答

1

Textscan很适合我:

>> type textscan.dat % show contents of file 
1_Q6 - Walmart (https://www.glassdoor.com) 
5_Q5 - Phillips 66 (https://www.glassdoor.com) 

 

>> f = fopen ('textscan.dat', 'r');   
>> C = textscan (f, '%*u_%*c%u - %s %*[^\n]') 
C = 
    [2x1 uint32] {2x1 cell} 
>> C{:} 
ans = 
      6 
      5 
ans = 
    'Walmart' 
    'Phillips' 

PS。不要忘记,如果您需要重新阅读f,您必须首先登录frewind(f)。另外,别忘了fclose(f)

+0

我不会解释我使用的说明符,因为我只是把自己弄明白了,heheh。阅读matlab帮助文件,这很清楚。 :) –