在Matlab中使用正则表达式提取字符串中的整数
Matlab字符串元胞数组提取整数并转1×2数组方案
核心思路
用正则表达式匹配提取所有整数,再根据提取到的数量补全为1×2数组(单个整数时第二列填-1)。
代码实现
假设你的字符串元胞数组为strCell,执行以下代码即可:
% 示例输入元胞数组 strCell = {'[1, 2]', '[3]', '[10, 3]', '[1, 12]', '[11, 12]'}; % 初始化结果矩阵,行数等于元胞数组长度,固定2列 result = zeros(length(strCell), 2); % 遍历处理每个字符串 for i = 1:length(strCell) % 提取字符串中所有整数(正则表达式\d+匹配1个或多个数字) numStrs = regexp(strCell{i}, '\d+', 'match'); % 转换为数值数组 nums = str2double(numStrs); % 根据提取到的整数数量赋值 if length(nums) == 1 result(i, :) = [nums, -1]; else result(i, :) = nums; end end
运行结果
执行后result矩阵内容为:
1 2 3 -1 10 3 1 12 11 12
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

