【问题标题】:how to get the number from a string in matlabmatlab如何从字符串中获取数字
【发布时间】:2011-08-12 19:47:36
【问题描述】:

我想知道如何从 matlab 中的字符串中获取某些数字。例如,我有一个字符串:

'ABCD_01 36_00 3 .txt',(01到36之间有空格)

我需要的是得到数字 36 和 3。我怎样才能在 matlab 中做到这一点?我尝试从以前的帖子中找到答案,但找不到适合此目的的答案。感谢您的帮助。

【问题讨论】:

  • 文件名总是这种形式吗?
  • ABCD的长度可能会有所不同,但除此之外,一切都会遵循这种形式。
  • @Tai-YenChen:正则表达式非常适合这类问题

标签: string matlab


【解决方案1】:

正则表达式:

>> str = 'ABCD_01 36_00 3 .txt';
>> t = str2double( regexp(str,'.* (\d+)_.* (\d+)','tokens','once') )

t =
    36     3

【讨论】:

    【解决方案2】:

    如果文件名总是以四个字符开头,您可以这样做:

    >> 文件名 = 'ABCD_01 36_00 3 .txt'; >> sscanf(文件名, '%*4c_%*u %u_%*u %u.txt') 答案= 36 3

    【讨论】:

    • 如果字符 ABCD 的长度会发生变化,您将如何解决?
    • 你可以概括为:sscanf(filename, '%*s %u_%*s %u')
    • @Tai-Yen Chen:如果第一个整数后面总是有空格,那么 Amro 的建议将解决变量前缀问题。
    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    相关资源
    最近更新 更多