Find row where cell value equals some defined value

Hi,
I have a list called quarters that looks something like:
1999Q2
1999Q3
1999Q4
2000Q1
I would like to find out which row is for example 1999Q4. So I have defined:
quarter_find='1999Q4'
How could I find the right row? I tried with find function: [row_equal]=strfind(quarters, quarter_find)
I get
[]
[]
1
[]
How could I actually get number of row where those values are equal? (so in this case I would like to ger answer=3)
Could anyone please suggest me something?
Thanks,
Ieva

 Accepted Answer

eg
data = {'1999Q2'
'1999Q3'
'1999Q4'
'2000Q1'}
out = find(~cellfun('isempty',strfind(data,'Q4')))

3 Comments

Great thank you! It works perfectly! :)
suppose, the data are '10' '10.66' '11' '20' like this, I would like to find out only 10 not 10.66 exactly 1st row only not both the 1 and 2?
And my data is like 90x1 double?
@Venkatesan Thanigaiarasu: Please do not highjack an existing thread. Open a new thread for a new question. Thanks.
'10' '10.66' '11' '20' does not look like a "90 x 1 double". Please clarify this (in the new thread of course).

Sign in to comment.

More Answers (1)

The command posted by Andrei is the best Matlab solution I know, but it does not look nice, althozugh this is a standard problem. Therefore I'm using FEX: strncmpr. This function is equivalent to strncmp, but processes the strings from the right. E.g. this helps to filter file names by their extensions.

Asked:

on 23 Mar 2012

Commented:

Jan
on 21 Mar 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!