Convert cell array to array of strings

Hi,
I have a cell array a of 10000x1 cell. Each cell contains a string. I would like to strsplit the string in each cell but I keep getting this error;
C = strsplit({a}, '_'); Error using strsplit (line 76) First input must be a char row vector.
What is the problem here?
thanks for any help.

回答 (1 件)

Adam
Adam 2017 年 3 月 3 日

0 投票

s = string( a );
C = arrayfun( @(x) strsplit( x, '_' ), s, 'UniformOutput', false );
should work, or you could just use cellfun on the cell array itself. Depends if having a string array is useful for any other purpose. I don't know which is faster if that matters.

2 件のコメント

JFz
JFz 2017 年 3 月 3 日
Thanks. But I got this error at s = string(a); Undefined function 'string' for input arguments of type 'cell'.
Adam
Adam 2017 年 3 月 3 日
I guess in that case you are using an older version of Matlab that doesn't yet have strings
C = cellfun( @(x) strsplit( x, '_' ), a, 'UniformOutput', false );
should work

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

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

製品

質問済み:

JFz
2017 年 3 月 3 日

コメント済み:

2017 年 3 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by