【发布时间】:2017-09-12 18:02:08
【问题描述】:
假设有一个输入单元:
input=
"82.3 4.3 John"
"4.2 0.0001 Tim Taylor"
这是一个 2by1 元胞数组。我需要拆分它以获得一个 2by3 数组,例如:
"82.3" "4.3" "John"
"4.2" "0.0001" "Tim Taylor"
split(input) 或 split(input,'\t') 返回错误,因为每行单元格包含不同数量的分隔符。
【问题讨论】:
-
单元格中的数据块是由单个制表符 (\t) 分隔还是由可变数量的空格分隔?输入元胞数组是从哪里来的,说不定可以导入数据产生你想要的结果。
-
@Gryphon 它们由单个列表分隔,除了最后一个名称之间有一个空格的列表。我实际上需要消除单个空格并仅按
\t分割。因此,每当x和y之间有一个空格时,两者都应该在单元格中形成一个单独的项目,例如x y。 -
strsplit可能在这里工作,因为它们是字符串 -
@gnovice 有一个很好的答案。需要注意的一件大事是 '\t' 在这里没有被解释为制表符,它被保留为文字。而不是使用 char(9) 你可以做 split(input,compose('\t'))
标签: arrays string matlab split cell-array