Octave 在向量(八度)中搜索特定字符串

Octave 在向量(八度)中搜索特定字符串,octave,string-matching,Octave,String Matching,我试图在向量中找到一个字符串。 例如:矢量中的query=“ab=[“ab”、“cd”、“abc”、“cab”] 问题是:当我使用函数strfind(vector,query)时,它给出了所有具有字符串“ab”的索引。在这种情况下,“ab”包括“abc”和“cab”。但是我只想要“ab”的索引,而不是其他索引。 在八度音阶中是否有特定的函数?问题在于语法。当您执行vector=[“ab”、“cd”、“abc”、“cab”]时,您并不是在创建这些多个字符串的向量,而是将它们连接到一个字符串中。您应

我试图在向量中找到一个字符串。 例如:矢量中的query=“ab=[“ab”、“cd”、“abc”、“cab”]

问题是:当我使用函数strfind(vector,query)时,它给出了所有具有字符串“ab”的索引。在这种情况下,“ab”包括“abc”和“cab”。但是我只想要“ab”的索引,而不是其他索引。
在八度音阶中是否有特定的函数?

问题在于语法。当您执行
vector=[“ab”、“cd”、“abc”、“cab”]
时,您并不是在创建这些多个字符串的向量,而是将它们连接到一个字符串中。您应该做的是创建字符串的单元格数组:

vector = {"ab", "cd", "abc", "cab"};
然后你可以做:

octave-cli-3.8.2>  strcmp (vector, "ab")
ans =

   1   0   0   0
许多其他函数可以正确使用字符串的单元格数组,包括
strfind
,在这种情况下,它可以为字符串“ab”所在的每个单元格提供索引:


这很好。但是你能告诉我如何在这个单元格中附加一个元素吗。是否有任何内置函数?如果有多个匹配项或正在搜索多个字符串,请查看
ismember
函数。关于附加到矩阵,您可以这样做:vector{end+1}='newstring'。请查看以了解更多详细信息。
octave-cli-3.8.2> strfind (vector, "ab")
ans = 
{
  [1,1] =  1
  [1,2] = [](0x0)
  [1,3] =  1
  [1,4] =  2
}