gpt4 book ai didi

regex - matlab - 从(奇数)字符串中提取数字

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:39 25 4
gpt4 key购买 nike

我在 cvs 文件中有一系列字符串,它们看起来都像下面两个:

7336598,"[4125420656L, 2428145712L, 1820029797L, 1501679119L, 1980837904L, 380501274L]"
7514340,"[507707719L, 901144614L, 854823005L]"
....

如何提取其中的数字?如...检索 7336598、4125420656 等....

尝试了 textscanregexp,但不太成功...

抱歉初学者的问题...感谢您的浏览! :)

编辑:每行的大小是可变的。

最佳答案

您可以使用 textreadregexp仅从 CSV 文件中提取数字:

C = textread('file.cvs', '%s', 'delimiter', '\n');
C = regexp(C, '\d+', 'match');

正则表达式非常简单。在MATLAB的regexp模式中,\d表示一个数字,+表示这个数字必须至少出现一次。 match 模式告诉 regexp 返回匹配的字符串。

结果是 cell array字符串。您可以更进一步,将字符串转换为数值:

C = cellfun(@(x)str2num(sprintf('%s ', x{:})), C, 'Uniform', false)

结果仍然存储在元胞数组中。如果可以保证每行中的数值数量相同,则可以将元胞数组转换为矩阵:

A = cell2mat(C);

关于regex - matlab - 从(奇数)字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com