Matlab提取元胞数组中特定格式字符串为数组

本文将介绍如何使用Matlab从元胞数组中提取特定格式的字符串,例如 '[90,70]',并将其转换为数值数组。

问题: 假设你有一个元胞数组,其中一些单元格包含形如 '[90,70]' 的字符串。你需要将这些字符串提取出来,并转换为数值数组。

解决方案: 以下代码示例演示了如何实现这一目标:

% 定义元胞数组
cell_array = {'A', 'B', 'C', '[90,70]', '[80,60]'; 'D', 'E', 'F', '[100,50]', '[70,40]'; 'G', 'H', 'I', '[110,55]', '[90,60]'};

% 提取第4列和第5列的值并转换为数组
column4 = cellfun(@(x) str2num(x(2:end-1)), cell_array(:, 4), 'UniformOutput', false);
column5 = cellfun(@(x) str2num(x(2:end-1)), cell_array(:, 5), 'UniformOutput', false);

% 转换为数组
column4 = cell2mat(column4);
column5 = cell2mat(column5);

% 显示结果
disp(column4);
disp(column5);

代码解释:

  1. 定义元胞数组: 首先,我们定义一个示例元胞数组 cell_array
  2. 提取特定列: 使用 cell_array(:, 4)cell_array(:, 5) 提取第4列和第5列的所有值。
  3. 字符串转换为数值: str2num(x(2:end-1)) 将字符串转换为数值数组。x(2:end-1) 用于去除字符串首尾的方括号。
  4. 使用cellfun进行批量转换: cellfun() 函数对元胞数组的每个单元格应用 str2num() 函数,并将结果存储在新的元胞数组 column4column5 中。 'UniformOutput', false 参数确保输出为元胞数组。
  5. 转换为数值数组: 最后,使用 cell2mat() 函数将元胞数组 column4column5 转换为数值数组。

总结: 通过以上步骤,你可以轻松地从Matlab元胞数组中提取特定格式的字符串并将其转换为数值数组。请根据实际情况修改代码中的列索引和字符串格式。


原文地址: http://www.cveoy.top/t/topic/oxK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录