matlab中,一个数值A=[BK;00: P 21.95, R 3.43, V 0.08, A -25.46, E 3.06, F 0;05: P 19.62, R 5.27, V 0.08, A 10.96, E -8.61, F 0;AK;],提取数值中BK和AK之间的浮点数
时间: 2023-08-23 16:04:51 浏览: 139
MATLAB 浮点数的运算
可以使用正则表达式来提取BK和AK之间的浮点数。
以下是一个示例代码:
```matlab
% 定义原始字符串
A = '[BK;00: P 21.95, R 3.43, V 0.08, A -25.46, E 3.06, F 0;05: P 19.62, R 5.27, V 0.08, A 10.96, E -8.61, F 0;AK;]';
% 正则表达式匹配
pattern = 'BK;(.*?);AK;';
match = regexp(A, pattern, 'tokens');
% 取出匹配到的字符串
if ~isempty(match)
floatStr = match{1}{1};
end
% 将字符串转成浮点数数组
floatArray = str2num(floatStr);
```
解释一下上面的代码:
首先,定义原始字符串A。
然后,定义正则表达式pattern,该表达式可以匹配到BK和AK之间的任意字符,其中“.*?”表示匹配任意字符,直到下一个分号出现。
接着,使用regexp函数进行匹配,将匹配结果保存在match变量中。
如果匹配成功,则从match变量中取出匹配到的字符串floatStr。
最后,使用str2num函数将floatStr转成浮点数数组floatArray。
阅读全文