在Matlab中将'abcd'转换为{'a''b''c''d'}

在Matlab中将'abcd'转换为{'a''b''c''d'},matlab,Matlab,我想将一个字符串转换为一个分类数组,其中类别是字符 matlab中的字符串实际上已经是一个字符向量 str = 'abcd'; length(str) %4 str(1) %a str(2:3) %bc 为此,您可以按如下方式使用: string ='abcd'; num2cell(string) 输出:- 如果要生成字符串字符的单元格数组,请使用cellstr函数。这将把字符数组的每一行转换为单元格数组中的一个单独字符串。由于字符串变量是单行,请使用单引号字符将其转换为列,然后使用cell

我想将一个字符串转换为一个分类数组,其中类别是字符

matlab中的字符串实际上已经是一个字符向量

str = 'abcd';
length(str) %4
str(1) %a
str(2:3) %bc
为此,您可以按如下方式使用:

string ='abcd';
num2cell(string)
输出:-


如果要生成字符串字符的单元格数组,请使用cellstr函数。这将把字符数组的每一行转换为单元格数组中的一个单独字符串。由于字符串变量是单行,请使用单引号字符将其转换为列,然后使用cellstr:

输出A将是列式的,因此要获得行单元格数组,请在A后面加上另一个引号,例如在与Category一起使用时,如您所述:

B = categorical(A')

您使用的是什么MATLAB版本?在上周发布的R2016b之前,带有字符串/字符的数组无论如何都是char类型的。@adrian True。这个问题做得很糟糕,因为我现在注意到我尝试的是{'a','b','c',它创建了一个分类数组。将更新此问题。此问题制作得很差。我很抱歉。请删除答案并尝试添加另一个。正如我之前评论的,是的,但这只是R2016b之前的情况。此后,字符串/字符的字符串数据类型也存在
string ='abcd'
A = cellstr(string')   % The single quote after the string variable transposes it to a column
B = categorical(A')