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

如何在Matlab中将CSV导出的1维字符数组转为二维元胞数组

Matlab一维字符数组转二维Cell元胞数组实现方案

实现逻辑

  • 先按换行符拆分一维字符数组,得到CSV每一行的内容
  • 逐行按逗号拆分字段,去除字段前后冗余空格
  • 统一整理为标准二维元胞数组,自动适配不同行的列数差异

可直接运行代码

% 输入为第三方函数输出的一维字符数组,示例如下
array_o_chars = ['1' 'd' ',' ' ' 'a' 'r' 'r' 'a' 'y' '\n' 'o' 'f' ',' ' ' 'c' 'h' 'a' 'r' 's'];

% 1. 按换行符拆分得到所有行的字符串数组
row_arr = split(string(array_o_chars), newline);

% 2. 逐行拆分字段生成二维元胞
result_cell = {};
max_col = 0;
for row_idx = 1:length(row_arr)
    % 按逗号拆分当前行,去除每个字段前后的空格/制表符等空白
    current_cols = strtrim(split(row_arr(row_idx), ','));
    col_num = length(current_cols);
    % 自动扩展列数,避免行长度不一致报错
    if col_num > max_col
        result_cell(:, col_num) = {''};
        max_col = col_num;
    end
    result_cell(row_idx, 1:col_num) = current_cols;
end

运行结果

你提供的示例输入运行后,输出的result_cell为2行2列二维元胞:

第1行:{'1d', 'array'}
第2行:{'of', 'chars'}

适配说明

  • 上述代码默认适配无引号包裹的普通CSV格式,如果你的CSV存在带逗号的引号包裹字段,可在拆分前先增加引号字段识别逻辑
  • 不需要自动补全空列的场景,删除列数扩展的代码段即可,会得到每行长度独立的嵌套元胞

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:07