MATLAB:如何拆分不同分隔符号的单元格数组?

fhm*_*fhm 2 arrays string matlab split cell-array

假设有一个输入单元格:

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')返回错误作为小区的每个行包括不同数量的分隔符.

gno*_*ice 5

您可以使用split,但它会有所不同,具体取决于您是否包含包含字符向量单元格数组或包含字符串单元格数组(我知道,这非常令人困惑):

如果您input显示如下:

input =

  2×1 cell array

    '82.3   4.3 John'
    '4.2    0.0001  Tim Taylor'
Run Code Online (Sandbox Code Playgroud)

然后你有一个字符向量的单元格数组,你可以像这样在选项卡上拆分:

str = split(input, char(9))

str = 

  2×3 string array

    "82.3"    "4.3"       "John"      
    "4.2"     "0.0001"    "Tim Taylor"
Run Code Online (Sandbox Code Playgroud)


如果您input的显示方式如下:

input =

  2×1 cell array

    ["82.3  4.3 John"      ]
    ["4.2   0.0001  Tim Taylor"]
Run Code Online (Sandbox Code Playgroud)

然后你有一个字符串的单元格数组,你需要在切换选项卡之前将单元格连接成一个2乘1的字符串数组:

str = split([input{:}].', char(9))

str = 

  2×3 string array

    "82.3"    "4.3"       "John"      
    "4.2"     "0.0001"    "Tim Taylor"
Run Code Online (Sandbox Code Playgroud)


请注意,我必须使用char(9)指定ASCII制表符,并且每种情况下的输出是2乘3的字符串数组.