2017-01-01 5 views
1

文字列が一重引用符で囲まれた文字列が 'MynameisJohn'の場合、同様の質問に対するその他の回答が機能します。たとえば、str1(1:2)は「My」を返します。Matlab文字列オブジェクトが文字列で分割された場合

しかし、文字列が二重引用符で囲まれたstr1 = "MynameisJohn"の場合、上記の使用法str1(1:2)は機能せず、範囲外エラーが発生します。この場合のstr1のサイズはちょうど1行1列の行列です。

2番目のケースでは、空白がないと仮定して、文字列を分割して単語を取得する方法(したがって、区切り文字は使用できません)。私の分割の長さは一定であると見なすことができます。

EDIT 私は自分自身で答えを見つけたと思います。 str2 = char(str1)は文字列配列str1を文字配列に変換し、同様の構造体str2(1:2)が機能します。

+0

ですどのMATLABのバージョンを使用していますか?私はR2016bを使用しています。二重引用符は構文エラーです。 – gnovice

答えて

0

あなたが転記したときにcharへ変換してからインデックスを作成します。結果を文字列として残したい場合は、部分文字列を抽出する別の方法として、抽出関数を使用する方法があります。たとえば、

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

substr = 

    string 

    "My" 

この場合、substrは引き続き文字列型です。 Doc for extractBeforeはhttps://www.mathworks.com/help/matlab/ref/extractbefore.html

+0

どのバージョンのMATLABを使用していますか?私はR2016bを使用しています。二重引用符は構文エラーです。 – gnovice

+0

あなたは正しいです。私は質問からの行をコピーしました。私は答えを編集しました。 – Navan