2016-12-21 9 views
-6

Учитывая массив ячеек:Разделить значение различного массива ячеек типов данных на основе разделителей

MyValues = {'HI, HOW ARE YOU, NICE TO MEET YOU, 1.32, -0.54BC, AUF WIEDERSEHEN' 
      'HELLO, YES I am fine, Thank you for asking, 0.666HG, [email protected]#, 84'  } 

И я хочу разделить этот массив ячеек со значениями, разделенных разделителем (запятая). Что-то вроде этого:

NewValues = { 'HI' 
       'HOW ARE YOU' 
       'NICE TO MEET YOU' 
       '1.32' 
       '-0.54BC' 
       'AUF WIEDERSEHEN' 
       'HELLO' 
       'YES I am fine' 
       'Thank you for asking' 
       '0.66HG' 
       '[email protected]#' 
       '84'  } 
+0

Вы, кажется, забыли, каков ваш вопрос. Что именно вы пытаетесь спросить? – rayryeng

+0

@rayryeng Спасибо, я уже редактировал мой вопрос –

+0

Я до сих пор не знаю, что вы просите. Похоже, у вас есть массив из 2 элементов, каждый из которых является строкой. Желаете ли вы создать массив ячеек элементов 'N', где вы хотите разбить строки на основе запятой в качестве разделителя? – rayryeng

ответ

1

Это может быть сделано с помощью cellfun и strsplit следующим образом:

NewValues = cellfun(@(x) strsplit(x, ', '), MyValues, 'UniformOutput',0); 
NewValues = [NewValues{:}].' 
+1

Почему бы не использовать '[NewValues ​​{:}]' вместо 'horzcat'? Это немного быстрее, и легче на глазах ИМО ... Вопрос вкуса, я думаю. –

+0

Привет @Sardar_Usama Я уже пробовал вышеуказанную функцию, это будет работать только со строками, но мой массив ячеек содержит символы и целые числа. –

+1

@MohammedNadaf. Затем вы должны улучшить свой вопрос, чтобы показать, как выглядят ваши фактические данные. Это не первый случай, когда вы делаете такие ошибки. –

1

Вот альтернатива:

NewValues = regexp(MyValues, ', ', 'split'); 
NewValues = [NewValues{:}]'; 

, который работает на примере вы в курсе, но, судя от ваших комментариев, это не решит вашу актуальную проблему.

Так пожалуйста, напишите конкретный пример вашей конкретной проблемы, и мы сможем помочь вам НАМНОГО быстрее и лучше.

+0

@Sardar_Usama Да, я заметил опечатку перед вашим комментарием, но спасибо! В контексте массивов ячеек нет никакой разницы между операторами 'ctranspose' и' transpose'. Кроме того, я просто использовал транспонирование, чтобы сделать вывод согласованным с тем, что размещал OP, но он может даже не понадобиться ... –

+0

Я удалил свой комментарий, когда увидел, что вы его исправили. –

 Смежные вопросы

  • Нет связанных вопросов^_^