Matlab - 向量化方式到单元格数组等于字符串中的索引

时间:2013-10-29 03:28:32

标签: arrays matlab vectorization cell-array

我有一个435x1的单元格数组,其元素是'y','n'或'?'。我想找到哪些指数等于'y'。

使用普通数组,我只使用find函数。但是我不能在单元格数组中使用它,因为没有为类型单元格定义eq。

我想我可以浏览每个元素并做

for index=1:size(cell_array,1)
    if cell_array{index} == 'y'
        %add index to some array of indices
    end
end

但是有没有矢量化的方式来遍历数组并找到索引包含等于'y'的元素?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:5)

由于您知道每个单元格将包含单个字符,因此您可以连接所有单元格元素并执行单个矢量化测试:

find([cell_array{:}]=='y')

可能最直接的方法就是使用strcmp,它可以接受一个单元格作为第二个参数:

find(strcmp('y',cell_array))