Matlab:如何从字符串中读取不同类型(字符串和整数)的数据

时间:2015-11-18 20:08:31

标签: matlab

输入: str ='str1Name_str1Value_var1Name_var1Value_var2Name_var2Value';

欲望输出: output = {'str1Value',[var1Value],[var2Value]};

当需要从字符串中仅提取整数时,我使用了sscanf函数,它完美地运行。当我想从同一输入字符串中提取一些字符串和整数时出现问题。输入字符串具有一些已知模式(即str1Name,var1Name等)。

我尝试使用regexp,textscan函数但没有成功:(

知道怎么做吗?我将非常感激。

编辑: 输入字符串的附加示例: str ='PCNAME_MYPC_OS_UNIX_RAM_4096_NUMCPU_8';

欲望输出: output = {'MYPC','UNIX',[4096],[8]};

当输出只包含字符串时我也会满意,那么它看起来如下: output = {'MYPC','UNIX','4096','8'}; - > str2num应该完成其余的工作

1 个答案:

答案 0 :(得分:2)

由于输出似乎是通过将输入中的每个其他元素用下划线分隔而生成的,让我们使用strsplit来拆分该字符串并提取每个组件,然后建立索引以访问它们并形成输出: / p>

Input = 'PCNAME_MYPC_OS_UNIX_RAM_4096_NUMCPU_8';

A = strsplit(Input,'_')

A现在是一个如下所示的单元格数组:

    A = 

  Columns 1 through 5

    'PCNAME'    'MYPC'    'OS'    'UNIX'    'RAM'

  Columns 6 through 8

    '4096'    'NUMCPU'    '8'

因此获取每个其他元素以形成输出:

Output = A(2:2:end)

给出了:

Output = 

    'MYPC'    'UNIX'    '4096'    '8'