はじめに
MATLABでは、数値データだけでなくテキストデータを扱う機会も多くあります。バージョンが進むにつれて、string型と呼ばれるデータ型が導入され、文字列処理がより簡単かつ柔軟になりました。本記事では、MATLABでのテキストデータの取り扱い方や、string配列内のテキストと文字配列 (char) 内のデータの違い・活用方法をご紹介します。
キーワード例:MATLAB, テキスト, 文字, string配列, 文字配列(char), テキスト処理
MATLABにおけるテキストの扱い
MATLABでテキストを扱う方法は主に2つあります。
1.文字配列 (char配列)
- 従来からあるテキスト表現方法
- ‘Hello’ のようにシングルクォート(‘ ‘)で囲みます
2.string型 (string配列)
- R2016b以降で導入された新しいテキスト表現方法
- “Hello” のようにダブルクォート(” “)で囲みます
それぞれメリットや使い勝手が異なるため、用途に応じて使い分けることが大切です。
% char配列の作成
charVar = 'Hello'; % char配列はシングルクォートで囲む
% string型の作成
stringVar = "Hello"; % string型はダブルクォートで囲む
% char配列の表示
disp('--- char配列の表示 ---');
disp(charVar);
disp(['Class of charVar: ', class(charVar)]); % char配列のクラスを表示
% string型の表示
disp('--- string型の表示 ---');
disp(stringVar);
disp(['Class of stringVar: ', class(stringVar)]); % string型のクラスを表示

図1.テキストの型の種類
文字配列 (char) と string配列の違い
1. 文字配列(char)
- シングルクォートで囲む
- 多次元配列として扱われ、文字列の結合には配列操作が必要
- 文字ごとにインデックスでアクセスできる
% 文字配列の例
charVar = 'Hello MATLAB';
% 5文字目を取り出す (1文字)
fifthChar = charVar(5); % => 'o'
% 5文字目の表示
disp(fifthChar)

図2.文字配列(char)
2. string配列(string型)
- ダブルクォートで囲む
- string配列として扱われ、テキストの結合や分割が柔軟に行いやすい
- 文字数の異なる複数文字列でも配列として扱える

図3.文字配列(string)
表1.char配列とstring配列の特徴
特徴 | 文字配列(char) | 文字配列(string) |
宣言方法 | charVar = ‘Hello’ | strVar = “Hello” |
配列としての取り扱い | 文字が行列として格納される | 新しいデータ型で、要素が文字列単位 |
文字列結合の方法 | [charVar1, charVar2] | strVar1 + strVar2 (演算子で簡単に結合) |
関数サポート(分割や検索等) | 従来の文字列操作関数を利用 | tring特有の関数 (split, join 等) |
string配列内のテキスト処理
string配列のメリットは、複数の文字列を配列として扱える点と、組み込みのテキスト操作関数が豊富な点です。
% 複数の文字列を要素とする string配列を作成
names = ["Alice", "Bob", "Charlie"];
% 大文字化 (upper)
upperNames = upper(names); % => ["ALICE", "BOB", "CHARLIE"]
disp(upperNames)
% 文字列の分割 (split)
splitName = split("John,Doe", ","); % => ["John", "Doe"]
disp(splitName)
% 結合 (join) などが簡単
joinedName = join(["Dr.", "Smith"], " "); % => "Dr. Smith"
disp(joinedName)

図4.文字配列(string)のテキスト処理
string配列の活用例
- テキストファイルの行ごとの読み込み結果を一括管理
- ラベルやカテゴリ名の管理
- 正規表現やパターンマッチを使ったテキスト解析
文字配列 (char配列) 内のデータ操作
一方、char配列は基本的に2次元(または多次元)配列としての操作になります。文字列連結や部分抽出には、配列演算を利用します。
% char配列を使った例
charVar1 = 'Hello';
charVar2 = 'World';
% 連結 (スペース1つ挟む)
concatenated = [charVar1, ' ', charVar2]; % => 'Hello World'
disp(concatenated)

図5.文字配列(char)のテキスト処理
char配列の活用例
- もともと従来のMATLABコードで使用されている場合
- 文字単位での操作がしやすい(例:画像処理のファイル名などを統一形式で扱う)
- 旧バージョン互換でstring型が存在しない場合の対応
表2.char配列とstring配列の処理の違い
操作 | string型の場合 | char配列の場合 |
文字列の連結 | str3 = str1 + ” ” + str2; | char3 = [char1, ‘ ‘, char2]; |
部分抽出 (先頭5文字) | extractBefore(str, 6) | charVar(1:5) |
大文字化 | pper(str) | upper(charVar) |
まとめ
MATLABでテキストと文字を扱う場合、string型とchar配列の2種類が主に使われます。string配列は複数の文字列をまとめて扱うのに便利で、新しい関数群によりテキスト処理がスムーズ。一方、char配列は従来からの配列操作が馴染み深い環境で有効です。
- string型: 新しいテキスト処理の主力。可読性が高く、連結や分割が容易。
- char配列: 従来のコードを継承しやすく、互換性維持に有用。配列として文字を操作。
それぞれの特徴を理解し、自分のプロジェクトに合わせたテキストデータの取り扱いを選ぶと、コードの可読性・保守性が向上します。ぜひこの記事を参考に、MATLABでのテキスト操作を一歩進めてみてください。
さらなる学習リソース
- MathWorks公式サイト (日本語)
- MATLABドキュメンテーション「Text and Strings」(英語版: Text and Strings)
- 正規表現関連のリファレンス regexp, regexprep, matches など
キーワード再掲: MATLAB, テキスト, 文字, string配列, 文字配列, テキスト処理