Matlab字符串拆分当它是一个字符串对象

Posted

技术标签:

【中文标题】Matlab字符串拆分当它是一个字符串对象【英文标题】:Matlab String Split when it is a String object 【发布时间】:2017-01-01 20:47:53 【问题描述】:

如果字符串是单引号内的 str1 = 'MynameisJohn',则类似问题的其他答案有效。例如,str1(1:2) 给出“我的”。

但如果字符串是带双引号的 str1 = "MynameisJohn",则上述使用 str1(1:2) 不起作用并给出越界错误。在这种情况下,str1 的大小只是一个 1 x 1 矩阵。

在第二种情况下,假设没有空格(因此不能使用分隔符),我如何拆分字符串以获取其中的单词。我们可以假设我的分割长度是恒定的。

编辑 我想我自己找到了答案。 str2 = char(str1) 将字符串数组 str1 转换为字符数组,然后类似的构造 str2(1:2) 起作用。

【问题讨论】:

您使用的是哪个版本的 MATLAB?我正在使用 R2016b,双引号给出语法错误。 【参考方案1】:

转换为 char,然后按您发布的那样进行索引。如果您希望结果保留为字符串,另一种提取子字符串的方法是使用提取函数。例如,

str1 = string('MynameisJohn');
substr = extractBefore(str1,3)

substr = 

  string

    "My"

在这种情况下 substr 仍然是一个字符串类型。 extractBefore 的文档位于https://www.mathworks.com/help/matlab/ref/extractbefore.html

【讨论】:

您使用的是哪个版本的 MATLAB?我正在使用 R2016b,双引号给出了语法错误。 你是对的。我从问题中复制了一行。我编辑了答案。

以上是关于Matlab字符串拆分当它是一个字符串对象的主要内容,如果未能解决你的问题,请参考以下文章

当它是大写字母时分隔对象字符串c# [重复]

Matlab中tabel如何按照日期列拆分

当它是存储帐户连接字符串时,如何使用输出变量?

在ms sql中如何拆分字符串:如一列值为 aaabbbccc 如何拆成 aaa , bbb, ccc三列?

如何从我拆分的单个字符串创建一个对象?

matlab创建一个字符串“Iamastudent”将字符串全变成大写字母,拆分截取出 字