【发布时间】: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
我有一个无法在 Matlab 中更改的函数,它将 CSV 文件转换为一维字符数组。
这是一个示例:
array_o_chars = ['1' 'd' ',' ' ' 'a' 'r' 'r' 'a' 'y' '\n' 'o' 'f' ',' ' ' 'c' 'h' 'a' 'r' 's'];
我需要将其转换为二维“单元”数组以用于我的其余代码,我该怎么做?
【问题讨论】:
标签: matlab csv cell-array
答案出奇的简单:
首先,您要将 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'}
【讨论】: