MATLAB

数値計算言語

主な機能

  • 数値計算可視化アプリケーション開発のための高水準言語
  • 反復的な調査、設計、問題解決のための対話型環境
  • 線形代数、統計、フーリエ解析、フィルター処理、最適化、数値積分、常微分方程式求解のための数学関数
  • データを可視化する組込みグラフィックスと、カスタム プロットの作成ツール
  • コードの品質や保守性を向上し、パフォーマンスを最大化する開発ツール
  • カスタム グラフィカル インターフェイスをもつアプリケーションの作成ツール
  • MATLAB ベースのアルゴリズムを外部アプリケーションや C、Java、.NET、Microsoft® Excel® などの言語と統合するための関数
MATLAB デスクトップを使用したデータの解析と可視化。
拡大する MATLAB デスクトップを使用したデータの解析と可視化。MATLAB 環境では、プログラムの作成、アルゴリズムやアプリケーションの開発も可能です。

数値計算

MATLAB には、データ解析、アルゴリズム開発、モデル作成のための、さまざまな数値計算手段が用意されています。MATLAB 言語では、一般的なエンジニアリングと科学計算に対応した数学関数がサポートされています。中核となる数学関数は、プロセッサに最適化されたライブラリを使用してベクトル計算や行列計算を高速で実行します。

次のような計算法が使用できます。

  • 内挿と回帰
  • 微分と積分
  • 連立線形方程式
  • フーリエ解析
  • 固有値と特異値
  • 常微分方程式 (ODE)
  • スパース行列

MATLAB のアドオン製品には、統計、最適化、信号解析、機械学習などの特殊領域で使用できる関数が用意されています。

2 次元 3 次内挿を使用したグリッド データの改良
拡大する 2 次元 3 次内挿を使用したグリッド データの改良

データ解析と可視化

MATLABではデータを取得、解析、可視化するツールが用意され、スプレッドシートや従来のプログラミング言語よりもはるかに短い時間でデータを詳しく分析できます。得られた結果は、プロットおよびレポートとして、または MATLAB コードとしてパブリッシュすることで、ドキュメント化し、共有できます。

MATLAB によるデータの解析と可視化 (英語)
MATLAB でデータを参照、可視化、およびモデリングします。

データの取得

MATLAB では、ファイル、他のアプリケーション、データベース、および外部デバイスからデータにアクセスできます。また、Microsoft Excel など一般的な形式のファイル、テキストまたはバイナリ ファイル、画像、音声、動画ファイル、netCDF や HDF のような科学データ ファイルから、データを読み取ることができます。ファイル I/O 機能を使用すると、任意の形式のデータ ファイルを扱うことができます。

MATLAB でアドオン製品を使用すると、コンピューターのシリアル ポート、サウンド カードなどのハードウェア デバイスや、ストリーム ライブの計測データなどから、MATLAB に直接データを取り込んで解析や可視化を行うことができます。また、オシロスコープ、ファンクション ジェネレーター、信号アナライザーなどの機器とデータをやり取りすることもできます。

インポート ツールを使用して数値とテキストが混在するファイルを MATLAB にインポート。
拡大する インポート ツールを使用して数値とテキストが混在するファイルを MATLAB にインポート。MATLAB は、ファイルをプログラムによってインポートするためのスクリプトまたは関数を自動的に生成します。

データ解析

MATLAB では、データの管理、フィルター処理、前処理を行うことができます。さらに、予備調査データの解析による傾向の分析、仮説の検証、記述モデルの構築が可能です。MATLAB には、フィルター処理と平滑化、内挿、たたみ込み、高速フーリエ変換 (FFT) の関数が用意されています。アドオン製品には、曲線/曲面近似、多変量統計、スペクトル分析、イメージ解析システム同定およびその他の解析作業のための機能が用意されています。

MATLAB と Curve Fitting Toolbox を使用して、カスタム モデルをもつデータに曲面を近似。
拡大する MATLAB と Curve Fitting Toolbox を使用して、カスタム モデルをもつデータに曲面を近似。

データの可視化

MATLAB には、組み込みの 2 次元および 3 次元プロット関数のほか、ボリューム データの可視化関数も用意されています。これらの関数を使用して、データを可視化して理解し、結果をやり取りできます。プロットは、対話的またはプログラムを使用してカスタマイズできます。

MATLAB プロット ギャラリーには、MATLAB でデータをグラフィカルに表示するためのサンプルが数多く用意されています。各サンプルについて、ソース コードを表示したり、ダウンロードして MATLAB アプリケーションで使用できます。

MATLAB の対話型プロット環境を使用して曲面等高線図のタイトルを編集。
拡大する MATLAB の対話型プロット環境を使用して曲面等高線図のタイトルを編集。

結果のドキュメント化と共有

結果はプロットとしてまたは包括的なレポートとして共有できます。MATLAB のプロットは、パブリッシュの内訳に合わせてカスタマイズしたり、一般的なグラフ付きデータ ファイル形式に保存したりできます。

MATLAB プログラムを実行すると、レポートを自動的に生成できます。レポートには、プロットの他にコード、コメント、プログラム結果が含まれます。レポートは、HTML、PDF、Word、または LaTex など、さまざまな形式で出力できます。

MATLAB エディターを使用して HTML で出力された MATLAB プログラム。
拡大する MATLAB エディターを使用して HTML (右) で出力された MATLAB プログラム (左)。コマンド ウィンドウでまたはプロットとして表示された結果がキャプチャされて取り込まれ、コードのコメントが HTML のセクション見出しと本文テキストに変換されます。

プログラミングとアルゴリズム開発

MATLABでは高水準言語と各種開発ツールが用意されており、アルゴリズムやアプリケーションを簡単に開発、分析できます。

MATLAB によるプログラミングおよびアルゴリズムの開発(英語)
MATLAB の高水準言語と開発ツールを使用して、プログラムを作成しアルゴリズムを開発します。

MATLAB 言語

MATLAB 言語は、エンジニアリング上または科学上の問題の解決に欠かせないベクトル演算と行列演算をネイティブでサポートしているため、開発や実行が迅速です。

MATLAB 言語を使用すると、変数の宣言、データ型の指定、メモリの割り当てなどの低水準の管理タスクを行う必要がないため、アルゴリズムのプログラミングや開発にかかる時間を従来の言語よりも短縮できます。ベクトル演算と行列演算がサポートされていることから for ループが不要になることが多く、その結果、複数行の C または C++ コードが 1 行の MATLAB コードに置き換わります。

MATLAB には、フロー制御、エラー処理、オブジェクト指向プログラミング (OOP) といった従来のプログラミング言語の機能が含まれています。したがって、基本的なデータ型や高度なデータ構造を使用することも、カスタムのデータ型を定義することもできます。

コマンドを一つずつ対話的に実行することで、ただちに結果を生成できます。この方法により、複数のオプションが短期間で検討され、繰り返し実施されることで、最適なソリューションが得られます。対話の手順をスクリプトや関数として保存しておき、再利用したり、作業を自動化することができます。

MATLAB アドオン製品には、信号処理や通信、画像および動画処理、制御システムといった分野に向けた組み込みアルゴリズムが数多く用意されています。これらのアルゴリズムをユーザー自身のものと組み合わせることで、複雑なプログラムやアプリケーションを構築できます。

1024 ランダム ビットを生成する通信アルゴリズムは、ベクトルを送信信号に変換し、複素ガウス雑音を付加し、結果をプロットするという操作を、9行の MATLAB コードに変換できます。
拡大する 1024 ランダム ビットを生成する通信アルゴリズムは、ベクトルを送信信号に変換し、複素ガウス雑音を付加し、結果をプロットするという操作を、9行の MATLAB コードに変換できます。

開発ツール

MATLAB には、効率的にアルゴリズム開発を行うため、以下のようなさまざまなツールが用意されています。

  • コマンド ウィンドウ - 対話的なデータ入力、コマンドやプログラムの実行、結果表示が可能
  • MATLAB エディター - ブレークポイントの設定、各コード行のステップ実行などの編集およびデバッグ機能
  • コード アナライザー - コードの問題の自動チェックおよびパフォーマンスと保守性を最大化する変更の推奨
  • MATLAB プロファイラー - MATLAB プログラムのパフォーマンス分析およびコードの改良部位の特定

この他、コードとデータ ファイルの照合によって、ファイル依存性、注釈付きリマインダー、コード カバレッジをレポートするツールがあります。

拡大する デバッグ モードで実行されて問題を診断する MATLAB プログラム。

他の言語やアプリケーションとの統合

MATLAB アプリケーションは他の言語で作成されたアプリケーションと統合することができます。

MATLAB からは、C、C++、Java、.NET で作成されたコードを直接呼び出せます。また、MATLAB エンジン ライブラリを使用して、C、C++、あるいは Fortran アプリケーションから MATLAB コードが呼び出せます。

パフォーマンス

MATLAB は、プロセッサに最適化されたライブラリを使用して、行列演算やベクトル演算を高速実行します。汎用のスカラー計算の場合、MATLAB はそのジャストインタイム (JIT) コンパイル テクノロジーによって、従来のプログラミング言語に匹敵する速度で実行します。

マルチコアおよびマルチプロセッサ コンピューターの優れた性能を活かせるように、MATLAB には多くのマルチスレッド線形代数関数および数値関数が用意されています。これらの関数は、1 つの MATLAB セッション内で自動的に複数の演算スレッド上で実行されるため、マルチコア コンピューターではより高速な実行が可能になります。

マルチコア デスクトップおよびその他の高性能の計算リソース (たとえば、GPU や並列計算製品アドオンを持つクラスターなど) の利点もさらに活用できます。これらの製品で提供される高度な構成では、MATLAB コードにほんのわずかな変更を加えるだけでアプリケーションの並列化が可能です。

Parallel Computing
並列計算のソリューションにより、大規模データ処理を高速化します。

アプリケーションの開発と配布

MATLAB ツールとアドオン製品には、アプリケーションを開発して配布するための一連のオプションが用意されています。個々のアルゴリズムやアプリケーションを他の MATLAB ユーザーと共有したり、MATLABユーザー以外に無償で配布することができます。

アプリケーションの開発と配布 (英語)
MATLAB アプリケーションを、コード、実行ファイル、もしくはソフトウェア コンポーネントとして、開発し共有します。

グラフィカル ユーザー インターフェイスの設計

GUIDE (グラフィカル ユーザー インターフェイス開発環境) を使用して、カスタムのグラフィカル ユーザー インターフェイスを配置、設計、編集することができます。リスト ボックス、プルダウン メニュー、プッシュ ボタンなどの一般的なコントロールや、MATLABプロットを含めることができます。グラフィカル ユーザー インターフェイスは、MATLAB 関数を使用してプログラムで作成することもできます。

風を分析するための GUI の GUIDE レイアウトと完成したインターフェイス。
拡大する 風を分析するための GUI (上) の GUIDE レイアウトと完成したインターフェイス (下)。

アプリケーションの配布

アプリケーションを他の MATLAB ユーザーに直接配布するには、MATLAB アプリケーションとして 1 つのファイル パッケージにして配布します。MATLAB アプリケーションは MATLAB アプリケーション ギャラリーに自動的にインストールされるので、簡単にアクセスできます。

MATLAB ユーザー以外とアプリケーションを共有するには、アプリケーション配布製品を使用できます。これらのアドオン製品では、スタンドアロン アプリケーション、共有ライブラリ、および C、C++、Java、.NET、Excel 環境で統合するためのソフトウェア コンポーネントを自動生成します。実行ファイルとコンポーネントは無償で配布できます。

MATLAB Production Server では、MATLAB Compiler でパッケージ化した MATLAB プログラムを稼働システム内で実行できるため、数値解析を Web、データベース、エンタープライズ アプリケーションに組み込むことができます。

MATLAB Compiler 概要
MATLAB Compiler™ を使用して、MATLAB プログラムからスタンドアロン アプリケーションやソフトフェア コンポーネントをビルドします。

C コードの生成

MATLAB Coder を使用して、MATLAB コードからスタンドアロンの C コードを生成できます。MATLAB Coder では、設計エンジニアが大規模システムのコンポーネント アルゴリズム開発で通常使用する MATLAB 言語のサブセットがサポートされています。このコードは、スタンドアロン実行、他のソフトウェア アプリケーションとの統合、または組込みアプリケーションの一部として使用可能です。

MATLAB コードと、生成された C コードを示すコード生成レポート 。
拡大する MATLAB コード (左) と、生成された C コードを示すコード生成レポート (右)。