FreeMatは、
ScilabやGNU Octaveと同様に、オープンソースで利用可能な
数値解析環境であり、
プログラミング[[言語]]でもあります。MATLABやIDLと比較して、C/
C++/Fortranなどの
言語で追加のコードを記述することなく、分散環境での並列計算の開発に適している点や、高度な3Dグラフィックス機能を標準で搭載している点が特徴です。
FreeMatの特徴
MATLABとの完全な互換性はありませんが、その機能の約95%をカバーしており、多くのMATLABユーザーにとって代替となり得る存在です。FreeMatがカバーしている主な機能は以下の通りです。
多次元配列: 任意の次元の配列を扱うことが可能(デフォルトでは6次元まで)。
豊富なデータ型: 8, 16, 32, 64ビットの
整数型(符号付き、符号なし)、32, 64ビットの浮動小数点型、64, 128ビットの
複素数型をサポート。
算術演算: 全てのデータ型に対して基本的な算術演算が可能。
線形代数: 除算による線形問題の解法、固有値分解、特異値分解などの機能を提供。
制御構文: プログラミングに必要な制御構文(for, while, break, continueなど)をサポート。
2Dプロットと画像表示: データの可視化に役立つ2Dプロット機能と画像表示機能を搭載。
混合型配列: 複数のデータ型が混在する配列(MATLABの"cell array"に相当)を扱うことが可能。
動的な配列操作: 配列のサイズや形状をプログラム実行中に動的に変更可能。
高速フーリエ変換 (FFT): 任意長のデータに対するFFTを効率的に実行。
参照渡し: 関数呼び出しの際に引数を参照渡しすることが可能(IDL
言語の機能と同様)。
外部ルーチン連携: C/C++/FORTRANで記述された外部ルーチンを、追加のコード記述なしに直接呼び出し可能。
ネイティブサポート: WindowsおよびMac OS X(X11不要)のネイティブサポートを提供。
疎行列: 疎行列を効率的に扱うためのネイティブサポート。
関数ポインタ: 関数へのポインタ(evalおよびfeval)を利用可能。
クラスと演算子オーバーロード: クラス定義と演算子オーバーロードによるオブジェクト指向プログラミングをサポート。
3Dプロット: OpenGLによる高度な3Dプロットおよび描画機能。
並列処理: MPI (Message Passing Interface) を用いた並列処理をサポート。
サポートされないMATLAB機能
FreeMatはMATLABのGUI機能をサポートしていません。
64ビット対応
バージョン4.2以降、64ビット版オペレーティングシステムにネイティブ対応しています。
関連項目
数値解析
アルゴリズム
計算科学
シミュレーション
数値解析ソフトウェア
類似ソフトウェア
GNU Octave
MATLAB
Scilab
外部リンク
Freematを使おう!