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