在向量中搜索特定字符串(八度)
Posted
技术标签:
【中文标题】在向量中搜索特定字符串(八度)【英文标题】:Search a particular string in a vector(Octave) 【发布时间】:2014-10-29 15:51:51 【问题描述】:我正在尝试在向量中查找字符串。 例如:query = "ab" in vector = ["ab", "cd", "abc", "cab"]
问题是:当我使用函数 strfind(vector,query) 时,它给出了所有具有字符串“ab”的索引。在这种情况下,“ab”包括“abc”和“cab”。但我只想要“ab”的索引而不是其他索引。 在 Octave 中是否有任何特定的功能?
【问题讨论】:
【参考方案1】:问题出在你的语法上。当您执行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
函数。关于附加到矩阵,您可以这样做:vectorend+1 = 'new string'。请查看my answer to this question 了解更多详情。以上是关于在向量中搜索特定字符串(八度)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JSON Postgres 数据类型列中搜索特定字符串?
在 C# 字符串中的 HTML 中搜索特定文本并标记文本的最佳方法是啥?