Разбор строки из ячейки в ячейку - PullRequest
1 голос
/ 29 декабря 2011

У меня есть следующая строка в MATLAB:

contents = '{'aa' 'bb' 'cc' 'dd'}'

Мне нужно получить массив ячеек 1x4, например:

mycell = {'aa' 'bb' 'cc' 'dd'}

Как бы вы это сделали?Есть ли более быстрый способ, чем его разбор?

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

Вот изящный способ (если я правильно понял ваш первоначальный вопрос)

>> contents = '{aa bb cc dd}';
>> result = regexp(contents,'\w+','match')
result = 
    'aa'    'bb'    'cc'    'dd'

"result" - это ячейка 1x4.

1 голос
/ 29 декабря 2011

Не забудьте двойную кавычку внутри строки и используйте eval (некрасивое решение, но простое и работающее).

>> contents = '{''aa'' ''bb'' ''cc'' ''dd''}'

contents =

{'aa' 'bb' 'cc' 'dd'}

>> c = eval(contents)

c = 

    'aa'    'bb'    'cc'    'dd'

>> class(c)

ans =

cell

>> c{2}

ans =

bb
...