2013-10-29 66 views
0

指數我有一個435x1單元陣列,其元素是「Y」,「N」,或者「?」。我想找出哪些指數等於'y'。Matlab的 - 量化的方式在單元陣列等於串

與正常陣列,我只是用查找功能。但是我不能在單元格數組中使用它,因爲eq沒有爲類型單元格定義。

我想我就可以進入每個元素,並做

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

但有一個量化的方式去通過陣列,發現指數包含等於「Y」的元素?任何幫助表示讚賞。

+1

[η如何搜索在MATLAB單元陣列的字符串]可能重複(http://stackoverflow.com/questions/8061344/how-to-search-for -a-string-in-cell-array-in-matlab) –

+0

@EitanT - 我認爲英鎊是最感興趣的'[cell_array {:}] =='y''位,這是不爲別的問題可能的解決方案,所以'find'可以與熟悉的方式來使用'eq'。我承認,這在功能上是相同的。 – chappjc

回答

5

既然你知道每一個單元格將包含一個單一的字符,你可以連接所有的電池元件及做單矢量測試:

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

可能是最簡單的方法就是使用strcmp,它可以接受單元陣列作爲第二個參數:

find(strcmp('y',cell_array)) 
+1

更準確地說,你會想'發現(STRCMP(「Y」,cell_array))',這樣你會得到「Y」值的索引。 – MrAzzaman

+0

謝謝,我會澄清,你需要''左右strcmp' find'。 – chappjc

+0

1第二種方法是更通用的,因爲它不要求單chracter串 –