String (MATLAB)从包含指数形式数字的字符串中提取数值

String (MATLAB)从包含指数形式数字的字符串中提取数值,string,matlab,abaqus,String,Matlab,Abaqus,我有一个包含混合文本和数字的字符串数组,下面提供了示例字符串: TOTAL STRAIN ENERGY (STRESS POWER) 5.126778E-05 STEP TIME COMPLETED 20.0 , TOTAL TIME COMPLETED 20.0 我想提取应变能值作为数字,以及总完成时间值。我曾尝试使用扫描查找数字前面文本的位置,然后使用str=str(开始:结束)读取部分字符串,但出

我有一个包含混合文本和数字的字符串数组,下面提供了示例字符串:

            TOTAL STRAIN ENERGY (STRESS POWER)          5.126778E-05

 STEP TIME COMPLETED        20.0    ,  TOTAL TIME COMPLETED         20.0    

我想提取应变能值作为数字,以及总完成时间值。我曾尝试使用扫描查找数字前面文本的位置,然后使用str=str(开始:结束)读取部分字符串,但出于某种原因,对于任何长度,这都返回0?

下次最好提供一个最小的示例,您可以在本例中使用正则表达式这一个
(总应变能\(应力功率\)|总完成时间)(?:\s+(\d+。\d+(?:E-)(?:\d+)
,其中第一组是变量名,第二组是关联值<代码>?:表示括号是非捕获组。
StrOut = "TOTAL STRAIN ENERGY (STRESS POWER) 5.126778E-05 STEP TIME COMPLETED        20.0    ,  TOTAL TIME COMPLETED         20.0  ";
StrOutSplit = split(StrOut, {'TOTAL STRAIN ENERGY (STRESS POWER)', 'STEP TIME COMPLETED', ',  TOTAL TIME COMPLETED '});
StrOutSplit(1) = [];
outNum = cellfun(@str2num, StrOutSplit);