String 将一个单元格的字符串解析为一个单元格到另一个单元格

String 将一个单元格的字符串解析为一个单元格到另一个单元格,string,matlab,cell-array,String,Matlab,Cell Array,我在MATLAB中有以下字符串: contents = '{'aa' 'bb' 'cc' 'dd'}' 我需要将1x4单元阵列放入其中,如: mycell = {'aa' 'bb' 'cc' 'dd'} 你会怎么做?有比解析更快的方法吗?不要忘记字符串中的双引号,使用eval(难看的解决方案,但简单有效) 不要忘记字符串中的双引号,使用eval(难看的解决方案,但简单有效) 这里有一个巧妙的方法(如果我正确地抓住了你最初的问题) “结果”是一个1x4单元格。这里有一个很好的方法(如果我正确地

我在MATLAB中有以下字符串:

contents = '{'aa' 'bb' 'cc' 'dd'}'
我需要将1x4单元阵列放入其中,如:

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

你会怎么做?有比解析更快的方法吗?

不要忘记字符串中的双引号,使用
eval
(难看的解决方案,但简单有效)


不要忘记字符串中的双引号,使用
eval
(难看的解决方案,但简单有效)

这里有一个巧妙的方法(如果我正确地抓住了你最初的问题)

“结果”是一个1x4单元格。

这里有一个很好的方法(如果我正确地抓住了你最初的问题)


“result”是一个1x4单元格。

更好的模式应该是“\w*”(我假设两个字母的单词只是示例)。谢谢大家的想法。这也是正确的,但由于我也在读取单元格中的单元格,eval()的工作更正常。更好的模式是“\w*”(我假设两个字母的单词只是示例)。谢谢大家的想法。这也是正确的,但由于我也在读取单元格中的单元格,eval()的工作更为正常。如果您直接在matlab的命令窗口中键入Clement J的答案(使用双单引号),它就可以正常工作。因为我使用xlsread()从excel中获取内容,所以我可以直接在电子表格中键入{'aa''bb''cc''dd'},eval()会对其进行很好的计算。我不理解这种比预期更好的行为。不管怎样,eval解决了这个问题(强大的功能正确!)谢谢!如果将Clement J的答案直接输入matlab的命令窗口(使用双单引号),它就可以正常工作。因为我使用xlsread()从excel中获取内容,所以我可以直接在电子表格中键入{'aa''bb''cc''dd'},eval()会对其进行很好的计算。我不理解这种比预期更好的行为。不管怎样,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
>> contents = '{aa bb cc dd}';
>> result = regexp(contents,'\w+','match')
result = 
    'aa'    'bb'    'cc'    'dd'