matlab - 如何在 Matlab 中将一维字符数组从 CSV 转换为二维元胞数组
问题描述
我有一个无法在 Matlab 中更改的函数,它将 CSV 文件转换为一维字符数组。
这是它的外观示例:
array_o_chars = ['1' 'd' ',' ' ' 'a' 'r' 'r' 'a' 'y' '\n' 'o' 'f' ',' ' ' 'c' 'h' 'a' 'r' 's'];
对于我的其余代码,我需要将其转换为二维“单元”数组,我该怎么做?
解决方案
答案出奇的简单:
首先,您要将 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'}
推荐阅读
- c++ - 理解 C 链接器错误:多重定义
- angular - 如何在 ionic 4 和 angular 7 中正确导入管道?
- elasticsearch - 过期滚动上下文的 Elasticsearch 回复
- tensorflow - tx2 protobuf 上的张量流
- azure-devops - 在 Azure DevOps 构建定义中下载最新版本的构建工件时未找到最新构建
- r - R:从基于连续变量的分类变量创建一个新的分类变量
- git - 如何将 TFS 拉取请求中的 Jenkins 作业与合并的分支进行排队
- php - PHP代码问题...数组中的数据但在HTML中显示记录时丢失了一些东西?
- python - Python Sphinx 包含指令:忽略包含文件中的标头
- python - 来自 SciKit-Learn 的 LabelEncoder 的 TypeError