如何通过将它与另一个字符串进行比较来在MATLAB中搜索单元格数组中的字符串?

时间:2013-03-15 15:48:58

标签: string matlab compare

我曾尝试使用strcmp,但我不知道如何查看单元格数组并仅输出带有该字符串的单元格数组。

例如str ='Hello'

out=["Hello", "my", "name", "is" "sam"]
out=["What", "is", "you", "name"]
out=["Hello", "my", "name", "is" "John"]

我的代码如下

while ~feof(fid)
    line=fgetl(fid)
    if isempty(line)||strncmp(line, '%',1)||~ischar(line)
        continue
    end
    fprintf(line)
    out=regexp(line, '', 'split')
end

我想添加if(str ==“Hello”),只打印出那些数组

输出

["Hello", "my", "name", "is" "sam"]
["Hello", "my", "name", "is" "John"]

2 个答案:

答案 0 :(得分:1)

的内容
if any(strcmp('Hello', out))

应该有用。

答案 1 :(得分:1)

使用ismember()。例如,out = {'Hello', 'my', 'name', 'is', 'sam'};,则ismember(out, 'Hello')应为1.您可以查看此讨论http://www.mathworks.com/matlabcentral/newsreader/view_thread/284849

顺便说一下,out=["Hello", "my", "name", "is" "sam"]不是单元格的表示。它应该是out = {'Hello', 'my', 'name', 'is', 'sam'}