Matlab提取元胞数组中特定格式字符串为数组
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);
代码解释:
- 定义元胞数组: 首先,我们定义一个示例元胞数组
cell_array。 - 提取特定列: 使用
cell_array(:, 4)和cell_array(:, 5)提取第4列和第5列的所有值。 - 字符串转换为数值:
str2num(x(2:end-1))将字符串转换为数值数组。x(2:end-1)用于去除字符串首尾的方括号。 - 使用cellfun进行批量转换:
cellfun()函数对元胞数组的每个单元格应用str2num()函数,并将结果存储在新的元胞数组column4和column5中。'UniformOutput', false参数确保输出为元胞数组。 - 转换为数值数组: 最后,使用
cell2mat()函数将元胞数组column4和column5转换为数值数组。
总结: 通过以上步骤,你可以轻松地从Matlab元胞数组中提取特定格式的字符串并将其转换为数值数组。请根据实际情况修改代码中的列索引和字符串格式。
原文地址: http://www.cveoy.top/t/topic/oxK 著作权归作者所有。请勿转载和采集!