如果字符串是str1 =' MynameisJohn'那么类似问题的其他答案也有效。在单引号内。例如,str1(1:2)给出了我的'。
但是如果字符串是str1 =" MynameisJohn"使用双引号,上面的用法str1(1:2)不起作用,并给出一个越界错误。在这种情况下,str1的大小只是1乘1矩阵。
在第二种情况下,假设没有空格(如果不能使用分隔符),我如何拆分字符串以获取其中的单词。我们可以假设我的分裂的长度是恒定的。
EDIT 我想我自己找到了答案。 str2 = char(str1)将字符串数组str1转换为字符数组,然后类似的结构str2(1:2)工作。
答案 0 :(得分:0)
转换为char然后编制索引按照您发布的方式工作。如果你希望结果保持为字符串,另一种提取子字符串的方法是使用提取函数。例如,
str1 = string('MynameisJohn');
substr = extractBefore(str1,3)
substr =
string
"My"
在这种情况下,substr仍然是一个字符串类型。 extractBefore的文档位于https://www.mathworks.com/help/matlab/ref/extractbefore.html