我试图在向量中找到一个字符串。对于例如:query =“ ab”,矢量= [“ ab”,“ cd”,“ abc”,“ cab”]
问题是:当我使用函数strfind(vector,query)时,它将给出所有具有字符串“ ab”的索引。在这种情况下,“ 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
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句