他言語からMatlabに来た人がハマりそうなlength()の話


物の見事にハマった

lengthで文字列の長さを取ろうとしたら思ったようにとれず、コマンドウインドウでこんなコマンドを叩いてみた。

コマンドウインドウ
> hoge = "somestring";
> length(hoge)

  ans =
        1

違う、そうじゃない。

stringで文字数が欲しい場合はstrlengthで。

lengthではなくstrlengthを使うと文字数が取れます。

コマンドウインドウ
> hoge = "somestring";
> strlength(hoge)

  ans =
        10

やったぜ

そもそもstringは最近実装された型

Matlabのドキュメンテーションで確認すると、stringが実装されたのは「R2016b」(=2016年後期)。
めちゃんこ最近です。
文字配列を数値配列に変換するやり方として「str2num」や「str2double」がありますが、「strだからstringだろ」とstringを突っ込むと前者はエラー、後者は空の行列になります。

Matlabで文字列を扱うときはcharを使いましょう