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