Splitting the elements in the cell array

20 次查看(过去 30 天)
I have a cell array,
a = { abcdsfa_def , ef_ghi, higdsfasfa_klm}
Now i need to remove the each element in the cell array from '_'.
my answer should be a = {abcdsfa, ef, higdsfasfa}
Thanks a lot
  1 个评论
Jan
Jan 2016-10-28
编辑:Jan 2016-10-28
Why does splitting 'abcdsfa_def' at '_' yield 'abc'? I'd expect 'abcdsfa'. 'efg' looks even more strange.

请先登录,再进行评论。

采纳的回答

Jan
Jan 2016-10-28
While this does not match the shown output, it matches your explanations:
a = {'abcdsfa_def', 'ef_ghi', 'higdsfasfa_klm'}
r = strtok(a, '_')

更多回答(1 个)

KSSV
KSSV 2016-10-28
a = { 'abc_def' , 'efg_ghi', 'hig_klm'}
b = cellfun(@(x) x(1:3), a, 'UniformOutput', false)
  2 个评论
Gopalakrishnan venkatesan
Number of elements before underscore is not all alway three, a = {abcdef_dasf, as_dfafdsa} What to do in this case ?
KSSV
KSSV 2016-10-28
a = {'abcdef_dasf', 'as_dfafdsa'} ;
b = cell(size(a)) ;
for i= 1:length(a)
t = strsplit(a{i},'_') ;
b{i} = t{1} ;
end
b

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Types 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by