将单元格的字符串解析为单元格

发布于 12-23 08:38 字数 200 浏览 5 评论 0原文

我在 MATLAB 中有以下字符串:

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

我需要获取其中的 1x4 元胞数组,例如:

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

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

I have the following string in MATLAB:

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

I need to get the 1x4 cell-array inside it, like:

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

How would you do it? Is there a quicker way than parsing it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖2024-12-30 08:38:29

这是一个巧妙的方法(如果我正确地捕获了你最初的问题)

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

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

Here's a nifty way (if I've captured your initial question correctly)

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

"result" is a 1x4 cell.

零度℉2024-12-30 08:38:29

不要忘记字符串内的双引号并使用 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

Don't forget the double quote inside the string and use eval (ugly solution but simple and working).

>> 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文