将文本文件读入matlab

时间:2014-04-26 12:44:40

标签: matlab

我有一个包含多个问题的txt文件,以及一个像这样的答案(真/假)

  1. 球是平方的。 ˚F
  2. 我的电脑很慢。 Ť 等
  3. 我想创建一个函数[Q,A] = load.test(filename)

    1. Q =包含N个字符串的单元格数组。
    2. A = N个元素的逻辑向量。
    3. 我尝试了不同的方法,但似乎都没有。

      [Q,A] = textread(filename,'%s %s');
      This output here is the closest I've come:
           'A'
          'is'
          'F'
          'My'
          'is'
          'T'
      

      我需要做什么?

2 个答案:

答案 0 :(得分:2)

如果每个句子有多个.,则Silas的解决方案将无效。你也这样松散了点。您也可以按照以下方式执行此操作:

fid = fopen('questions.txt');
data = textscan(fid, '%s','delimiter','\n')
fclose(fid);

Q = cellfun(@(x) x(1:end-2), data{1}, 'uni',0);
A = cellfun(@(x) x(end),     data{1}, 'uni',0);

或者使用:

A = cellfun(@(x) x(end) == 'T',data{1});

获得所需的逻辑向量。


对于内容的文本文件:

  

地球是一个磁盘。 F

     42是一切的答案。 Ť

你得到了

Q{1} =  The globe is a disk.

Q{2} =  42 is the answer to everything.

A =

     0
     1

答案 1 :(得分:1)

根据documentation,您应该使用textscan代替textread

如果您知道字符串被'分开。'或者你可以做的其他特定分隔符

parsed = textscan(file, '%s %s', 'delimiter', '.');