我正在尝试在向量中查找字符串。 例如:查询 = "ab",向量= ["ab", "cd", "abc", "cab"]
问题是:当我使用strfind(vector,query)函数时,它会返回所有包含字符串"ab"的索引。在这种情况下,它包括"abc"和"cab"。但我只想要"ab"的索引而不是其他的。 Octave中是否有特定的函数可以实现此功能?
我正在尝试在向量中查找字符串。 例如:查询 = "ab",向量= ["ab", "cd", "abc", "cab"]
问题是:当我使用strfind(vector,query)函数时,它会返回所有包含字符串"ab"的索引。在这种情况下,它包括"abc"和"cab"。但我只想要"ab"的索引而不是其他的。 Octave中是否有特定的函数可以实现此功能?
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"开头的字符串的索引:octave-cli-3.8.2> strfind (vector, "ab")
ans =
{
[1,1] = 1
[1,2] = [](0x0)
[1,3] = 1
[1,4] = 2
}
ismember
函数。关于向矩阵添加内容,您可以这样做:vector{end+1} = 'new string'。请参考我的回答了解更多细节。 - Dan