MATLABはアルゴリズム開発、データ解析などといった数値計算ソフトウェアであり、その環境で使用するプログラミング言語です。昨今急速にAI、機械学習への注目度が高まっている中、Pythonのみならず活躍するプログラミング言語としても大きな期待が寄せられています。この記事ではMATALABを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説していきます。
MATLABとはアルゴリズム開発、データ解析などといった数値計算ソフトウェアであり、その環境で使用するプログラミング言語です。反復的に実施する分析や設計プロセスに適したデスクトップ環境、そして行列と配列の数学を直接表現するプログラミング言語が 1 つに組み合わさっています。
正式名称は『MATrix LABoratory』です。特にディープランニングや人工知能(AI)などの領域において高い注目を集めております。データ解析を得意としているため経済学や工学といった特定の分野での指示があり、世界でのユーザーは300万人を超えると言われております。特徴として『数値計算処理能力が高い』『豊富な機能』『文法が簡単』などがあげられます。
インタプリタ言語とは人間が書いたプログラム(ソースコード)をコンピュータが実行する際に1行ずつコンピュータが読み取りやすいように機械語に翻訳していきながら、そのプログラムを実行していく方式を持つプログラミング言語です。インタプリタという言葉は英語の『Interpreter』を表し、日本語訳すると『通訳』を意味します。インタプリタ言語の大きな特徴として『コンパイルが不要』ということが挙げられます。
そのためプログラムの確認や修正が容易であるというメリットがあります。一方でコンパイラ言語に比べて『実行速度が遅い』というデメリットがあります。代表的なインタプリタ言語として「PHP」「Ruby」「Python」などが挙げられます。
インタプリタ言語のメリットや種類を解説している記事はこちら>>
C言語とはAT&Tベル研究所のデニス・リッチー氏が中心となって開発し1972年に誕生したプログラミング言語の一種です。汎用性の高いプログラミング言語としてソフトウェアの開発からコンピューター機器、自動車などのハードウェア製品の開発にも採用されております。
また手続き型言語であり、構造化プログラムに適しているという特徴があります。C言語は現在活躍する様々なプログラミング言語のモデルとなっており中でも代表的なのが「Java」や「C++」「C#」などです。日本の大学や専門学校の講義でもプログラムの基礎を学ぶための授業としてC言語が採用されることが多いです。
MATLABの読み方は『マトラボ』です。名前の由来は正式名称『MATrix LABoratory』の略式からきております。MATrix LABoratoryを直訳すると「行列実験室」となることから込められた意味が伺えます。
MATLABはアメリカの数学者であるクリーブ・モラー氏によって1970年代後半に開発された数値計算ソフトウェア及び、その環境で使用するプログラミング言語です。クリーブ氏は数学者として指導する学生たちへFortranを学ぶことなくLINPACKやEISPACKにアクセスできるようにこのソフトウェアを開発しました。これがすぐさま他学校へも広まっていき応用数学コミュニティにおいて話題となりました。
1983年にはエンジニアであるジョン・N・リトル等を中心にMATLABをC言語で書き直します。翌年である1984年には開発を継続させるべく『MathWorks社』を設立します。これを機に制御工学の分野を中心に商用パッケージとしての普及拡大を実現します。
1988年になると日本での商用展開が開始され、当時販売代理店として『サイバネットシステム株式会社』が中心に活動しておりました。2009年からはMathWorks社の日本法人である『MathWorks Japan』が販売代理店業務を受け持つ形になります。
また同年より「MATLAB EXPO」も『MathWorks Japan』によって主催されるようになりました。同イベントは一日で2000人を超えるほどの人気をみせ、MATLABユーザカンファレンスとしては世界最大の規模を誇ります。MATLABの歴史について簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
1970年代後半 | 「MATLAB」誕生 |
1983年 | 「MATLAB」C言語へ書き換え |
1984年 | 『MathWorks社』を設立 |
1988年 | 日本での商用展開が開始 |
2009年 | 『MathWorks Japan』が正規代理店及びイベント主催 |
MATLABの人気推移について見ていきましょう。1970年代後半に登場した比較的歴史の長い言語ですが、ここ最近の人気推移はどのように変化していったのでしょうか。TIOBEインデックス(https://www.tiobe.com/tiobe-index/)の発表している順位推移をその他のプログラミング言語と比較する形で以下の表にしてみました。
MATLAB | Python | R言語 | |
2016年 | 18位 | 5位 | 16位 |
2017年 | 17位 | 5位 | 11位 |
2018年 | 11位 | 5位 | 2位 |
2019年 | 11位 | 3位 | 2位 |
2020年 | 13位 | 2位 | 10位 |
MATLABの特徴を見ていきましょう。
MATLABは数値処理計算能力が高いという特徴があります。例えば他の数学計算用言語である「Mathematica」は記号数式処理で厳密な計算をすることを目的としているためMATLABの方が数値計算は数段早いです。またマルチコアデスクトップ、GPU、クラスター、グリッド、クラウドを使用した大規模な計算の実行が可能です。
MATLABは豊富な機能を持つという特徴があります。統合開発環境として「データ分析」「グラフィックス」「アプリケーションのアルゴリズム開発」「ネイティブアプリおよびWebアプリ作成」「多言語連携」などといった様々な機能を兼ね備えております。
統合開発環境のメリットや種類などの基礎知識を解説している記事はこちら>>
MATLABは文法が簡単という特徴があります。汎用言語と違い、変数型の宣言が不要であることやグラフを描く関数がデフォルトで用意されているので難しいコードを記述する必要がありません。
MATLABで出来ることを見ていきましょう。
アルゴリズム開発、データ解析の専門プログラミング言語であるため機械学習などの統計解析の分野において重宝されております。機械学習には大規模なデータからルールやパターンを発見する方法が組み込まれており、識別と予測が主な使用目的となっております。これらはデータ解析・統計解析を得意とするMATLABの土俵です。また同様にデータ解析・統計解析が求められるビジネスインテリジェンス(BI)やビジネスアナリティクス(BA)、マーケティングなどにおいても活用されております。
AI開発(人工知能を併せ持つシステムの開発)をすることができます。AIとは『 Artificial Intelligence』の略語で日本語訳をすると「人工知能」を意味します。世界各国で最も注目を集める技術分野の一つで、近年革新的なスピードで技術発展を遂げております。AI開発に用いられる主要なプログラミング言語としてGo言語やPythonが挙げられます。
IoT開発(インターネット経由でセンサーと通信機能を持ったモノ達の開発)をすることができます。IoTとは『Internet of Things』の略語で日本語訳をすると「モノのインターネット」を意味します。IoT化は様々な分野で取り組まれており、家電製品から公共システム、ロボットの開発などで注目を集めております。今後、多大な需要を集める分野として非常に注目度の高い開発技術です。
MATLABの基本的な文法を見ていきましょう。
MATLABでは変数の宣言は不要です。MATLABで新しい変数を作成するには、コマンド ウィンドウに変数名を入力し、その後に等号 (=) と、変数に代入する値を続けます。
MATLABではデータ型で使用される基本的な種類は以下の通りです。
データ型 | 概要 |
数値型 | 整数および浮動小数点データ |
日付と時刻 | 異なる形式で表示できる日付と時刻の値の配列 |
文字と文字列 | 文字配列と string 配列内のテキスト |
table | 異なる型をもつことができる名前付きの列で構成された、表形式の配列 |
timetable | 表形式のタイムスタンプが付けられたデータ |
構造体 | さまざまな型とサイズのデータを含む名前付きフィールドをもつ配列 |
cell配列 | さまざまな型とサイズのデータを含むことができる配列 |
関数ハンドル | 関数を間接的に呼び出せる変数 |
時系列 | 時間の経過とともにサンプリングされたデータベクトル |
MATLABでは演算子で使用される基本的な種類は以下の通りです。
演算子の種類 | 概要 |
算術演算子 | 足し算や引き算を実行する |
関係演算子 | 演算子の左辺と右辺を比較 |
論理演算子 | 理論を判定する際に用いる |
集合演算子 | 和集合、交差部分、集合メンバー |
ビット演算子 | 特定のビット フィールドにおける設定、シフト、比較 |
MATLABの制御文ではif/else文、switch/case文、while文を覚えておく必要があります。
MATLABとSimulinkの関係はMATLAB上で動作する一つのソフトウェアだと理解すると良いでしょう。Simulinkも同じく『MathWorks社』によって開発された製品です。Simulinkはブロック線図を描いて時間軸でのシミュレーションを行う環境として使用されます。MATLABとSimulinkを連携させることで、テキストプログラミングとグラフィカルプログラミングを組み合わせたシミュレーション環境でシステムを設計できます。別のソフトウェアではありますが、SimulinkはMATLAB上で動作するものなのでMATLABとセットであると認識されているケースも多いようです。
MATLABを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。MATLABを一言で表すと『アルゴリズム開発、データ解析などといった数値計算ソフトウェアであり、その環境で使用するプログラミング言語』です。特徴として『数値計算処理能力が高い』『豊富な機能』『文法が簡単』などが挙げられます。MATLABについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。