You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matlab拆分单元格双值并读取为(2,2,2)矩阵?

在Matlab中拆分单元格值生成三维矩阵

当然不用提前修改电子表格啦!完全可以在Matlab里直接处理这些带逗号的单元格值,转换成你需要的三维矩阵。下面是具体的实现步骤:

  • 首先读取原始文本数据:使用xlsread的第三个输出参数获取原始单元格数组,确保保留所有带逗号的文本内容

    [~, ~, raw] = xlsread('你的文件路径.xlsx');
    

    这里的raw就是包含所有单元格原始内容的二维单元格数组。

  • 批量拆分每个单元格的逗号分隔值:借助cellfun和strsplit函数,把每个单元格里的字符串按逗号拆分成两个子字符串

    split_cells = cellfun(@(x) strsplit(x, ','), raw, 'UniformOutput', false);
    

    执行后,split_cells里的每个元素都是包含两个字符串的小单元格数组。

  • 转换为数值并重组为三维矩阵:先把字符串转成数值,再通过cat函数把两部分数值在第三维度拼接起来

    % 把每个拆分后的字符串转换成数值
    num_cells = cellfun(@str2double, split_cells, 'UniformOutput', false);
    % 提取第一列值组成二维矩阵,提取第二列值组成另一个二维矩阵,再沿第三维度拼接
    3D_matrix = cat(3, cell2mat(cellfun(@(x) x(1), num_cells, 'UniformOutput', false)), ...
                        cell2mat(cellfun(@(x) x(2), num_cells, 'UniformOutput', false)));
    

    这样得到的3D_matrix就是你想要的三维矩阵——如果原始是M×N的二维结构,最终就会是M×N×2的三维矩阵,每个位置的两个值对应第三维度的两个层。

举个例子:如果你的原始矩阵是

'2,2'  '2,0'
'0,2'  '1,1'

执行完上面的代码后,3D_matrix(:,:,1)会是

2  2
0  1

3D_matrix(:,:,2)会是

2  0
2  1

内容的提问来源于stack exchange,提问作者Yiannikos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:23:08