Convert cell array with characters to vector with numbers?

Hi guys,
I've been trying to get a cell array that looks like this:
y =
'a'
'a'
'a'
'b'
'b'
'a'
'a'
'b'
'a'
'b'
'b'
'b'
to convert it to a vector that looks like this: y =
1
1
1
0
0
1
1
0
1
0
0
0
How do I do this? I've been trying to get it right with strfind and using it on the cell array and use those results to alter the contents of the cell array before I convert it to a vector with cell2mat().
But no luck so far.
Can someone help me with this?
Thanks in advance.

 採用された回答

Walter Roberson
Walter Roberson 2012 年 6 月 17 日

0 投票

ismember(y, 'a')

1 件のコメント

the cyclist
the cyclist 2012 年 6 月 17 日
If your array "y" is large, or you do this operation many times, you might want to do some timing experiments. On my machine, ismember() takes about 10 times longer than strcmp() to do this operation on moderately large arrays.

サインインしてコメントする。

その他の回答 (2 件)

the cyclist
the cyclist 2012 年 6 月 17 日

1 投票

One of many ways:
strcmp(y,'a')

1 件のコメント

Jan
Jan 2012 年 6 月 18 日
I prefer this, because it is lean and fast for small and large input.

サインインしてコメントする。

Andrei Bobrov
Andrei Bobrov 2012 年 6 月 17 日

0 投票

50 - (char(y)-'0')

カテゴリ

ヘルプ センター および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by