R12 Release Notes    

プログラミングおよびデータタイプの機能

MATLABのJavaインタフェース

MATLAB 6.0は、Javaクラスからオブジェクトを作成し、それらのオブジェクトに対してメソッド呼び出しが可能なJavaインタフェースを提供します。既存のJavaクラスを利用したり、独自のクラスを作成することが可能です。この機能のまとめは、MATLABのJavaインタフェースを参照してください。詳しいドキュメントについては、オンラインヘルプの"外部インタフェース/API" のMATLABからのJavaの呼び出し を参照してください。

関数ハンドル

MATLAB言語は、関数ハンドルと呼ばれる新たなデータタイプを持ちます。任意のMATLAB関数にハンドルを作成でき、そのハンドルを関数の参照の手段として利用することができます。関数ハンドルは、通常別の関数の引数リストに渡され、その後ハンドルを利用して関数を実行あるいは評価 することが可能です。

MATLAB関数ハンドルは、関数への参照以外にも使われます。関数ハンドルは、異なる引数タイプを取り扱うためオーバロードされた関数メソッドの集合を表わすことがあります。関数ハンドルの作成時に、MATLABはMATLABパス上に存在するその名前のすべての組み込みメソッドどM-ファイルメソッドのスナップショットを取り、それらのメソッドのすべてのアクセス情報をハンドルに格納します。

関数ハンドルの評価時には、MATLABはハンドルの作成時にハンドルに組み込まれた関数のみを考えます。これは、ハンドル内に存在するどの関数を組合せ、ハンドルが計算されるのに必要な引数はどれかを決め、MATLABが送り出す実際の関数を決定します。

関数ハンドルを使って、以下のことを行うことができます。これらの項目については、オンラインドキュメントの関数ハンドルを利用する利点で詳しく説明しています。

関数名の前にat 記号 @ を使って、MATLABで関数ハンドルを作成します。以下の例は、関数humpsに対する関数ハンドルを作成し、変数fhandleに割り当てます。

引数を渡すのと同じ方法でハンドルを渡します。以下の例は、作成したハンドルを区間[0.3, 1]で最小化を行うfminbndに渡します。

関数fminbndは、MATLAB関数fevalを使って関数ハンドル@humpsを計算します。

詳細は、MATLABドキュメントの"プログラミングとデータタイプ"の関数ハンドルを参照してください。

関数ハンドルの操作を行う関数

以下のMATLAB関数は、関数ハンドルデータタイプに対して機能します。関数func2str, functions, str2funcは、新規のMATLAB言語関数です。

関数
目的
feval
ハンドルによって関数を実行
func2str
関数ハンドルから関数名の文字列を作成
functions
関数ハンドルに関する情報を表示
isa
オブジェクトが関数ハンドルであるかどうかを決定
isequal
関数ハンドルの比較
str2func
関数名の文字列から関数ハンドルを作成

CONTINUEフローコントロールステートメント

continueステートメントは、ループ本体内の残りのステートメントをスキップして、コントロールをforまたはwhileループ内の次の繰り返しに渡します。入れ子形式のループ内では、continuecontinueを囲むforまたはwhileループの次の繰り返しにコントロールを渡します。

以下の例は、ファイルmagic.m内のコードの行数を、すべての空白行とコメントを除いてカウントするcontinueループです。continueステートメントは、空白行またはコメント行があったときにカウント(count)をインクリメントしないでmagic.mの次の行に進むために利用されます。

新規MATLABプログラミング関連関数

以下に示すプログラミング関連関数は、本リリースの新規関数です。

関数
目的
beep
コンピュータのビープ音を生成
genpath
指定したディレクトリの下のすべてのディレクトリを含むパス文字列を生成
iskeyword
入力文字列がMATLABキーワードであるかどうかをチェック
isvarname
入力文字列が有効な変数名であるかどうかをチェック
nargoutchk
出力引数の数をチェック
numel
オブジェクト内の要素数を出力
rehash
関数とファイルシステムのキャッシュを新しくします
support
MathWorks Technical Support Webページをオープン

親のクラスのみを継承するオブジェクトの作成

MATLAB 5では、関数classは、1つまたは複数の親のクラスからフィールドおよびメソッドを継承する新規オブジェクトを作成することができます。しかし、この新規オブジェクトは、classの呼び出しに渡されるstructure_name引数に属する追加フィールドを取得します。

このコマンドのシンタックスは、以下の通りです。

MATLAB 6.0では、指定された親オブジェクトから継承されたフィールド以外は含まない新規オブジェクトを作成することができます。これは、以下のシンタックスを使って行います。

コード長制限の削除

M-コードの行の長さの制限はありません。

M-ファイルでのシンタックスチェックの実行

ファイルを実行する前にM-ファイルのシンタックスのチェックを行うことができます。そのためには、以下のコマンドを利用します。

このコマンドは、M-ファイルのメモリへの読み込み時に、MATLABが生成するすべてのワーニングに対する引数リストによって指定されるディレクトリ内のすべてのM-ファイルをチェックします。引数リストディレクトリに含まれるすべての@クラスとプライベートディレクトリが処理されます。クラスとプライベートディレクトリは、この関数の明示的な引数として与えません。

引数リストが指定されない場合は、ツールボックス以外のMATLABパスとカレントの作業ディレクトリのすべてのファイルがチェックされます。

引数リストが正確に'-toolboxes'である場合は、ツールボックスを含むMATLABパスとカレントの作業ディレクトリ内のすべてのファイルがチェックされます。

以下のコマンドは、上記で与えられた情報を表示します。

このコマンドは、配列要素間で必要なセパレータキャラクタが失われているときに特に役立ちます。配列要素間にはセパレータが必要ですを参照してください。


数学関数 グラフィックス機能