Programming and Data Types | ![]() ![]() |
関数ハンドルのセーブとロード
MATLAB のsave
や load
コマンドを使って、MAT
ファイルの中に関数ハンドルをセーブしたり、ユーザのMATLAB
ワークスペースに読み込んだりできます。この例題は、関数ハンドル配列をファイルsavefile
にセーブしたり、再度、読み込んだりするものです。
fh_array = [@sin @cos @tan]; save savefile fh_array; clear load savefile whos Name Size Bytes Class fh_array 1x3 48 function_handle array Grand total is 3 elements using 48 bytes
セーブとロードの間で行われる変更の影響
初期のMATLABセッションで、ユーザがセーブした関数ハンドルをロードする場合、つぎの条件が、予期せぬ挙動の原因になります。
save
が、既に行われていたので、付加的なメソッドと共に関数を多重定義します。ユーザが今ロードした関数ハンドルは、新しいメソッドに関しては、情報がありません。最初の2つのケースにおいて、関数ハンドルは正しくありません。これは、存在しているソースコードにマッピングされていないからです。ハンドルが正しくないけれども、MATLABは、まだ、ロードはうまく行ないます。そして、ワーニングの表示もありません。しかし、ハンドルを計算しようとする試みは、エラーになります。
![]() |
データタイプのテスト | エラー条件の取り扱い | ![]() |