1

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

例如 str='你好'

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"]
4

2 回答 2

1

类似的东西

if any(strcmp('Hello', out))

应该是有用的。

于 2013-03-15T15:53:16.123 回答
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'}

于 2013-03-15T17:04:55.727 回答