八度 - 将单词放入向量中

Octave - putting words into vector

我正在创建电子邮件过滤器。我有一封示例电子邮件,内容如下:

Hi how are you lets meet up

我想将这些词中的每一个都放入一个向量中。我正在寻找这样的东西。

Words = ['Hi';'how','are','you','lets','meet','up']

当我进入时

words(1),我想让它显示Hi。

真不知道从何说起。我找到了不同语言的答案,例如 Ruby 和 JS。但不适用于 Octave。

Use Cell Arrays of Strings:

octave:1> words = {'hi', 'how', 'are', 'you', 'lets', 'meet', 'up'};
octave:2> words{1}
ans = hi

你可以使用索引:

octave:4> words{3:4}
ans = are
ans = you

如果你纠结为什么这个 returns 不同的结果:

octave:5> words(3:4)
ans = 
{
  [1,1] = are
  [1,2] = you 
}

then read here:

So with ‘{}’ you access elements of a cell array, while with ‘()’ you access a sub array of a cell array.

添加到 Andy 关于单元格的回答中,您可以将电子邮件作为字符串收集并使用 strtokstrsplit 等字符串操作对其进行处理,例如

octave:7> s = 'Hi how are you lets meet up';
octave:8> words = strsplit(s, ' ')
  words = 
  {
    [1,1] = Hi
    [1,2] = how
    [1,3] = are
    [1,4] = you
    [1,5] = lets
    [1,6] = meet
    [1,7] = up
  }
octave:9> words{1}
  ans = Hi