【问题标题】:How to convert 1d array of chars from CSV to 2d cell array in Matlab如何在 Matlab 中将一维字符数组从 CSV 转换为二维元胞数组
【发布时间】:2021-11-09 02:50:00
【问题描述】:

我有一个无法在 Matlab 中更改的函数,它将 CSV 文件转换为一维字符数组。

这是一个示例: array_o_chars = ['1' 'd' ',' ' ' 'a' 'r' 'r' 'a' 'y' '\n' 'o' 'f' ',' ' ' 'c' 'h' 'a' 'r' 's'];

我需要将其转换为二维“单元”数组以用于我的其余代码,我该怎么做?

【问题讨论】:

    标签: matlab csv cell-array


    【解决方案1】:

    答案出奇的简单:

    首先,您要将 char 数组分解为 CSV 文件的“行”。根据您的行尾,您将选择其中一个作为分隔符:\n\r,或两者的组合。对于这个例子,我们使用\n

    rows = split(array_o_chars, '\n');

    现在您有了行,您需要创建列,这与您的行相同,除了使用 , 作为分隔符,或者在本例中为 , (逗号后跟空间)。

    cell_array = split(rows, ', ');

    现在您有了所需的二维元胞数组。

    现在大家一起:

    % Test 1d array
    array_o_chars = ['1' 'd' ',' ' ' 'a' 'r' 'r' 'a' 'y' '\n' 'o' 'f' ',' ' ' 'c' 'h' 'a' 'r' 's'];
    
    % Conversion to cell array
    rows = split(array_o_chars, '\n');
    cell_array = split(rows, ', ');
    
    % Show result in Command Window
    display(cell_array);
    

    Matlab 的输出:

    cell_array =
    
      2×2 cell array
    
        {'1d'}    {'array'}
        {'of'}    {'chars'}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2011-02-07
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2021-01-28
      相关资源
      最近更新 更多