はじめに
MATLABは強力な数値計算・可視化環境であり、スクリプトと関数を使い分けることで、柔軟なプログラミングが行えます。本記事では、以下の内容に焦点を当てて解説します。
- スクリプト
- 関数
- 関数のタイプ
- グローバル変数
- コマンドと関数構文
これらを理解すると、MATLABのプログラム構成やスコープ管理、実行方法などが明確になり、より効率的なコーディングが可能になります。
キーワード:MATLAB, スクリプトと関数, スクリプト, 関数, 関数のタイプ, グローバル変数, コマンド構文, 関数構文
1. スクリプト (Script)
1.1 スクリプトとは
スクリプトは、連続したMATLABコマンドやステートメントを順番に実行するためのファイルで、一般的に拡張子「.m
」を持ちます。スクリプトには引数や戻り値がなく、主に以下のような特徴があります。
- コマンドを順次実行する
- ワークスペース(ベースワークスペース)をそのまま利用する
- 変数のスコープが広いため、簡単なデータ解析・実験に適している
以下はスクリプトの簡単な例です。
myScript.m
x = 0:0.1:2*pi;
y = sin(x);
plot(x,y);
この例では、myScript.m
を実行すると、x
と y
がベースワークスペースに作成され、最後にプロットが表示されます。

図1.スクリプトの実行例
2. 関数 (Function)
2.1 関数とは
MATLABの関数は、特定の入力に対して処理を行い、結果を戻り値として返す独立したプログラムブロックです。スクリプトとの最大の違いはスコープの分離であり、関数が作る変数は関数内のみで有効です。
a = myFunction(3,5)
disp(a)
function out = myFunction(a,b)
% MYFUNCTION 2つの数値を受け取り、和を返す例
out = a + b;
end
myFunction.m
というファイル名で保存し、このファイル内に上記のコードを記述すれば、myFunction(3,5)
のように呼び出して 8
を返すことができます。

図2.関数の使用例
2.2 関数のメリット
- 再利用可能: 同じ処理を何度も使う場合に便利
- 変数スコープが限定的: 不用意な変数干渉を防げる
- 保守性向上: 引数と戻り値が明確になり、コードを分割しやすい
3. 関数のタイプ
3.1 ローカル関数とプライベート関数
MATLABでは、一つの.m
ファイル内に複数の関数を含めることができます。ただし、先頭にあるメイン関数を除き、その他はローカル関数として扱われます。ローカル関数は同じファイル内からのみアクセスできます。
また、「private
」という特別なフォルダを作り、そこに格納した関数は、同じ親フォルダ内の関数からのみ呼び出せるプライベート関数となります。
3.2 無名関数 (Anonymous function)
一行で定義できる簡易的な関数で、MATLABでは無名関数と呼ばれます。
f = @(x) x.^2 + 3*x + 2; % 入力xに対してx^2 + 3x + 2を返す関数ハンドル
result = f(5); % 5を代入すると34が得られる
短い処理をサクッと書きたいときや、引数として関数を渡す際に便利です。

図3.無名関数の使用例
表1.関数の種類
関数の種類 | 特徴 | 例 |
---|---|---|
メイン関数 | .m ファイル先頭に定義、外部から呼び出せる | function y = mainFunc(x) |
ローカル関数 | 同じファイル内のメイン関数またはローカル関数からのみ呼び出せる | function z = localFunc(a) |
プライベート関数 | private フォルダ内に置く。同一親フォルダ内の関数からのみ呼び出せる | – |
無名関数 | 1行で定義、関数ハンドルとして使用可能 | f = @(x) x.^2 + 3*x; |
4. グローバル変数
4.1 グローバル変数の定義
MATLABでは、global
キーワードを使用することでグローバル変数を宣言できます。グローバル変数は、宣言が行われたすべてのワークスペース(ベース/関数/スクリプトなど)で共有されます。
global GVar;
GVar = 10;
testGlobal()
function testGlobal()
global GVar;
disp(GVar);
end
この場合、testGlobal()
を呼び出すと関数内でも GVar
が参照できます。

図4.グローバル変数の使用例
4.2 注意点
グローバル変数は便利な反面、以下のようなデメリットがあるため、乱用は推奨されません。
- コードの可読性が下がる
- 予期しないタイミングで値が変更されるリスク
- デバッグや保守が難しくなる
5. コマンドと関数構文
5.1 コマンド構文
MATLABでは、関数を呼び出す際に引数の丸括弧やクォーテーションを省略できるコマンド構文が存在します。たとえば、以下の例のように同じ結果が得られます。
% 関数構文
disp('Hello MATLAB');
% コマンド構文
disp Hello MATLAB
ただし、コマンド構文は引数が文字列であるケースを想定した簡易的な書式であり、可読性や誤動作のリスクを考えると、関数構文の使用が推奨されます。
5.2 コマンド構文使用時の注意
スペースや特殊文字が含まれると正しくパースできない場合があります。
% 下記はエラーになる可能性がある
cd C:\Program Files\MATLAB
関数構文 cd('C:\Program Files\MATLAB')
の形にするほうが安全です。
まとめ
本記事では、MATLABプログラム構築の基本となるスクリプトと関数に関して、以下のポイントをまとめました。
- スクリプト : 変数やワークスペースを共有し、手軽にコードを実行
- 関数 : スコープが独立し、再利用性や保守性が高い
- 関数のタイプ : ローカル関数、プライベート関数、無名関数など用途に合わせて選択
- グローバル変数 : 強力だが乱用は注意
- コマンドと関数構文 : 簡易的なコマンド構文より、関数構文が推奨される
これらの知識を活用することで、コードの品質向上やチーム開発の効率化が期待できます。特に関数によるモジュール分割や変数スコープの明確化は、大規模なプロジェクトで大きなメリットとなるでしょう。
さらなる学習リソース
- MathWorks公式ドキュメント(日本語)
MATLAB スクリプトと関数の使い方 - MATLAB Answers (Q&Aフォーラム)
スクリプトと関数の活用事例やトラブルシューティングが多数掲載 - YouTube MathWorks公式チャンネル
関数作成やスクリプト利用のチュートリアル動画が豊富
キーワード再掲:MATLAB, スクリプトと関数, スクリプト, 関数, 関数のタイプ, グローバル変数, コマンド構文, 関数構文