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字符串拆分当它是一个字符串对象的主要内容,如果未能解决你的问题,请参考以下文章