gpt4 book ai didi

matlab - 根据分隔符拆分字符串元胞数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:13 25 4
gpt4 key购买 nike

我有一个类似这样的字符串 cellarray

12:34
13:45
12:45

现在我想将此元胞数组拆分为两个,值由分隔符分隔。像这样

第一个

12
13
12

第二个

34
45
45

我如何在 matlab 中执行此操作?

最佳答案

输入字符串元胞数组-

str_cellarr ={
'12:34'
'13:45'
'12:45'}

转换为元胞数组,每个元胞都有一个 1x2拆分字符串的单元格 -

split1 = cellfun(@(x) strsplit(x,':'), str_cellarr(:),'uni',0)

或者按照@Luis 的建议对此使用更有效的解决方案-

split1 = regexp(str_cellarr, ':', 'split')

在此之后,您可以采用两种方法。

方法 #1

转换为 2 element元胞数组,每个元胞包含由分隔符 ':' 分隔的每个“字符串集” -

split1_2cols = mat2cell(vertcat(split1{:}),size(str_cellarr,1),[1 1])

最后,将每个集合存储到单独的变量中作为最终输出 -

[var1,var2] = deal(split1_2cols{:})

方法 #2

使用 split1 中的每一列数组以获取每个集合并将它们存储为单独的变量 -

var1 = arrayfun(@(n) split1{n}(1),1:size(str_cellarr,1))' %//'
var2 = arrayfun(@(n) split1{n}(2),1:size(str_cellarr,1))' %//'

如果您希望获得字符数组输出,请使用 char(..)得到那些。

关于matlab - 根据分隔符拆分字符串元胞数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com