はじめに

MATLABでは、多種多様なデータ型を扱えます。数値、文字列、論理値などの基本的な型に加え、表形式や複合的なデータ構造を取り扱うためのテーブルやセル配列、構造体配列などが用意されています。本記事では、以下のポイントを中心に、MATLABにおける主要なデータ型の特徴や利用方法を解説します。

  1. string 配列および文字配列内のテキスト
  2. 混在データの table
  3. cell 配列のデータへのアクセス
  4. 構造体配列
  5. 浮動小数点数
  6. 整数

これらを理解することで、MATLABのデータ処理や可視化をより柔軟かつ効率的に進められるようになります。

キーワード:MATLAB, データ型, string配列, 文字配列, テーブル (table), セル配列 (cell), 構造体配列 (struct), 浮動小数点数, 整数, 型変換

1. string 配列および文字配列内のテキスト

1.1 string 配列

近年のMATLABでは、文字列を扱う際に string 型が推奨されています。従来の文字配列(char)に比べて等長性を考慮しなくてよいなどの利点があります。

str2 は 1×3 の string 配列です。各要素に任意の長さの文字列を格納できます。

% string 配列の作成例
str1 = "Hello";
disp(str1)

str2 = ["MATLAB", "Data", "Types"];
disp(str2)

図1.string配列の例

1.2 文字配列 (char)

従来からある文字型は char で表されます。例えば、 ‘Hello’ は 1×5 の文字配列です。

文字配列を扱う場合、文字列の結合や分割などで配列サイズに注意が必要です。現在は string 型がより柔軟に扱えるため、新規コードでは string の使用が推奨されることが多いです。

% char 配列の作成例
charStr = 'Hello';
disp(charStr)

cs = size(charStr);
disp('char配列のサイズ:')
disp(cs)

図2.char配列の例

2. 混在データの table

table は、様々なデータ型(数値、文字列、カテゴリカル配列など)が列ごとに混在する表形式のデータを簡潔に扱うための型です。行や列に名前を付けることができ、データの可読性や操作性が向上します。

3つの列(Name, Age, Height)を含むテーブル T を作成しています。テーブルはスプレッドシートのような感覚で扱えるため、データ分析や可視化において便利です。

Name = ["Alice"; "Bob"; "Charlie"];
Age = [25; 30; 22];
Height = [165.4; 178.2; 172.0];
T = table(Name, Age, Height, ...
    'VariableNames',["Name","Age","Height"]);
disp(T)

図3.tableの作成例

3. cell 配列のデータへのアクセス

cell配列 は、中に異なる型やサイズのデータを混在して格納できる柔軟なデータ型です。波括弧 { } を用いて作成し、アクセスも { } を使います。

この例では、2×3 の cell 配列 C に数値、文字列、ベクトル、行列、さらにはセル配列そのものや複素数まで混在して格納しています。

アクセスの仕方: C{1,2} のように、要素単位でアクセスすると、その要素の中身が返されます。一方、C(1,2) のように丸括弧で参照すると、cell 配列として返されます。

C = {42, "text", [1 2 3]; 
     rand(2), {'nested', 'cell'}, 3+4i};
disp('cell配列')
disp(C)

disp('要素の中身を返す')
disp(C{1,2})

disp('cell配列として返す')
disp(C(1,2))

図4.cell配列のアクセス例

表1.cell配列のアクセス方法

アクセス記法返される型
丸括弧 ()C(1,2)1×1 の cell (セル配列)
波括弧 {}C{1,2}要素本体のデータ

4. 構造体配列

構造体 (struct) は、異なる名前のフィールドを持つ柔軟なデータ型です。セル配列と同じように複合データを扱えますが、フィールド名によってデータにアクセスできる点が特徴です。

S.name = "Alice";
S.age = 25;
S.scores = [90, 85, 88];
disp(S)

図5.構造体配列の作成例

4.1 構造体配列

構造体の配列を作成すると、同じフィールドを複数要素に持つ形で扱えます。

構造体配列を用いると、レコードベースのデータ操作やデータベース的な管理が容易になります。

S(1).name = "Alice";
S(1).age = 25;
S(2).name = "Bob";
S(2).age = 30;
disp(S)

図6.構造体配列を複数要素での作成例

5. 浮動小数点数

5.1 double と single

MATLABのデフォルトの数値型は double (倍精度浮動小数点数) です。メモリ容量が許容範囲なら基本的には double を用います。

一方、single (単精度浮動小数点数) はメモリ使用量を抑えたい場合や、特定のハードウェア(GPUなど)で最適化された演算を行う場合に便利です。

x_double = 3.14;        % デフォルトは double
x_single = single(3.14);% 単精度
whos x_double x_single

図7.数値型の変更とデータのサイズ

6. 整数

MATLABでは int8、int16、int32、int64 といった様々なビット幅の整数型を扱えます。画像処理やメモリ制限のある組み込み環境などで役立ちます。

整数型は負数や0を含めて表せる符号付きのものを指しますが、uint8、uint16 などの符号なし整数も存在します。

y_int8 = int8(100);
y_int16 = int16(1000);
whos y_int8 y_int16

図8.整数型のデータのサイズ

まとめ

本記事では、MATLABの主要なデータ型を以下の6つに分けて解説しました。

  1. string 配列および文字配列内のテキスト: 柔軟性の高い string と従来型の char
  2. 混在データの table: 異なる型を列単位で管理できる表形式
  3. cell 配列のデータへのアクセス: { } と () の違いに注意
  4. 構造体配列: フィールド名で管理できる複合データ
  5. 浮動小数点数: double がデフォルト、single も使用可能
  6. 整数: int8 から int64、および uint8 などの符号なし型もサポート

それぞれの型が持つ特徴や使いどころを理解すると、プログラムの可読性・保守性が向上し、効率的にデータを操作できます。

さらなる学習リソース

  • MathWorks公式ドキュメント(日本語)
    MATLABのデータ型
  • MATLAB Answers (Q&Aフォーラム)
    データ型の使い方やトラブルシューティングを検索可能
  • YouTube MathWorks公式チャンネル
    動画によるチュートリアルで理解を深めやすい

キーワード再掲:MATLAB, データ型, string配列, 文字配列, テーブル (table), セル配列 (cell), 構造体配列 (struct), 浮動小数点数, 整数, 型変換