はじめに

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配列, 文字配列, テキスト処理