はじめに

MATLABを使っていると、ワークスペース変数という言葉を目にすることが多いと思います。ワークスペースは、今まさにMATLAB上で扱っている変数やデータを一覧で確認できる機能です。本記事では、ワークスペース変数の基本的な使い方や管理方法をわかりやすく解説していきます。

キーワード例: MATLAB, ワークスペース, 変数, データ管理, メモリ, clear, save, load

ワークスペースとは?

MATLABでコードを実行すると、作成された変数や読み込んだデータはワークスペースに格納されます。ワークスペースは、現在のセッション中の変数を一括管理してくれます。

ワークスペースを確認する方法

  1. ワークスペースウィンドウ: MATLABデスクトップのワークスペースパネルで確認。
  2. who / whos コマンド: コマンドウィンドウから入力して、現在存在する変数やその詳細情報を表示。
% MATLAB変数の種類
matrix = [1, 2; 3, 4]; % 行列
logicalArray = [true, false; false, true]; % 論理配列
stringVar = "Hello, MATLAB!"; % 文字列
charArray = 'MATLAB'; % 文字配列
cellArray = {'Text', 42, true}; % 異なる型を混在
structVar = struct('Field1', 42, 'Field2', "MATLAB", 'Field3', [1, 2, 3]); % 構造体 (Structure)
tableVar = table([1; 2; 3], [4; 5; 6], 'VariableNames', {'A', 'B'}); % テーブル (Table)
time = datetime(2025, 1, 1) + days(0:2)';
timetableVar = timetable(time, [1; 2; 3]); % 時系列テーブル (Timetable)
handleObj = @sin; % 関数ハンドル
emptyArray = []; % 空の配列
missingValue = NaN; % 数値の欠損値
missingString = missing; % 文字列の欠損値
complexNum = 3 + 4i; % 複素数
categories = categorical({'cat', 'dog', 'cat'}); % 適合型 (Categorical)
datetimeVar = datetime('now'); % 現在の日時
durationVar = hours(2) + minutes(30); % 時間の継続時間
rangeVar = 1:5; % 範囲 (整数の列)
sparseMatrix = sparse([1, 0; 0, 2]); % 疎行列
javaObj = java.lang.String('MATLAB'); % Java文字列オブジェクト

% 現在のワークスペースにある変数名を一覧表示
who
% 変数名だけでなくサイズや型など詳細を表示
whos

図1.変数の確認・ワークスペースの例

ワークスペース変数の基本操作

1. 変数の作成・参照

  • 変数を作成すると同時に、ワークスペースに自動的に登録されます。
  • コマンドウィンドウやスクリプト内で変数名を参照すると、中身を確認できます。
% スカラー変数
a = 10;
% ベクトル
v = 1:5;
% 行列
M = [1 2; 3 4];

図2.変数の確認の例

2. 変数の値を更新

変数の内容を更新すると、ワークスペース上でも即時に反映されます。

a = 20; % すでに存在する変数aに新しい値を代入
v(3) = 10; % ベクトルvの3番目の要素を上書き
M(1,2) = 30; % 行列Mの1行目2列目の要素を上書き

図3.変数や要素の上書き

表1.ワークスペース変数を扱う基本的なコマンド

コマンド概要
=x = 5変数への値の代入
whowhoワークスペース内の変数名を一覧表示
whoswhos変数名だけでなくサイズや型の詳細を一覧表示
ワークスペースウィンドウ(GUI操作)GUI上で変数一覧を確認、右クリックで値の変更や可視化可

ワークスペース変数の管理

1. 不要な変数を削除する: clear

長時間作業していると、不要になった変数が溜まってしまい、メモリを圧迫することもあります。そんなときに使えるのがclearコマンドです。

% 特定の変数だけ削除
clear a
% ワークスペース内のすべての変数を削除
clear

図4.変数を削除

2. 変数の保存と読み込み: save, load

ワークスペース内の変数をファイルに保存しておくと、後で再利用したり、別のPCで作業を再開したりできます。

  • 拡張子.matのMATファイルとして保存します。
  • saveコマンドを使えばデータの再現性が上がり、プロジェクトの引き継ぎも容易になります。

図5.変数の保存と読み込み

スクリプトや関数との関係

スクリプトの場合

  • スクリプトは、ワークスペースを共有します。
  • スクリプト内で作成・更新した変数は、そのままワークスペースに反映されます。

図6.スクリプトとワークスペースの関係

関数の場合

  • 関数内の変数は関数専用のワークスペース(ローカルワークスペース)で管理され、外部から直接アクセスできません。
  • 関数を終了すると、作成した変数は基本的に消去されます(戻り値に指定しない限り)。

図7.関数とワークスペースの関係

表2.ワークスペースのスクリプトや関数との関係

種類ワークスペース特徴
スクリプトベースワークスペース変数をグローバルに共有し、スクリプト終了後も残る
関数ローカルワークスペース関数の外では変数を参照できず、関数終了後に消える

ワークスペース変数の活用例

以下の例では、ワークスペース変数を編集しながら簡単な計算を行い、その結果をMATLAB上で可視化してみます。

図8.ワークスペースの確認・波形の出力

実行後にワークスペースウィンドウを確認すると、xとyの2つの配列変数が格納されていることがわかります。必要に応じてsaveコマンドでこれらをMATファイルに保存しておけば、あとで分析を再開する際にも便利です。

まとめ

ワークスペース変数を適切に扱うことは、MATLABの効果的なデータ管理スムーズな分析フローを構築するうえで欠かせません。

  • ワークスペースパネルやwho/whosコマンドで変数を素早く把握
  • clearやsave/loadを駆使してメモリを整理・データを永続化
  • スクリプトと関数のワークスペースの違いも理解しておく

これらを押さえておくと、プロジェクトが複雑になっても変数の混乱を避けやすく、作業効率も格段に向上します。ぜひこの記事を参考に、MATLABのワークスペース変数をマスターしてみてください。

さらなる学習リソース

  • MathWorks公式サイト (日本語)
  • MATLABヘルプ「Workspace」(英語版: MATLAB Workspace Documentation)
  • 公式チュートリアル動画やユーザーフォーラム

キーワード再掲: MATLAB, ワークスペース変数, データ管理, clear, save, load, スクリプト, 関数