MATLAB Release Notes | ![]() ![]() |
プログラミングとデータタイプの機能
MATLAB 6.5は、以下のプログラミングと開発環境の機能が追加されています。
MATLAB 6.5は、以下のプログラミングとデータタイプの機能が追加されています。
MATLABパフォーマンスの向上
MATLAB 6.5は、M-ファイル関数およびスクリプトの処理方法が大きく変更されています。これらの変更は、MATLABのパフォーマンスに影響を与え、多くのMATLABアプリケーションについて旧バージョンのMATLABよりもパフォーマンスが向上することがあります。
MATLABで書かれたプログラムの実行の高速化は、多くのプロダクトリリースで実現されるように現在試行中です。MATLAB Performance Accelerationのドキュメントは、これらの機能強化の最適な利用方法、MATLABプロファイラを使ったパフォーマンスゲインの測定方法を説明し、M-ファイルをより高速に実行する方法を説明するサンプルプログラムが含まれます。
つぎの表は、記述されているプログラムについて、MATLAB 6.1と本リリースでのパフォーマンスの差分を示しています。
オペレーティングシステム |
MATLAB 6.1 |
MATLAB 6.5 |
パフォーマンスの向上 |
Windows |
16 min., 0.5 sec. |
2.7 sec. |
x 355.7 |
Linux |
38 min., 15.8 sec. |
5.9 sec. |
x 389.1 |
Solaris |
1 hr., 47 min., 32.7 sec. |
57.9 sec. |
x 111.4 |
正規表現のサポート
MATLABは、正規表現を使って、キャラクタの検索と置換をサポートします。以下の新規関数はこの機能をサポートします。詳細は、MATLABドキュメントのRegular Expressions を参照してください。
関数 |
詳細 |
regexp |
正規表現のマッチング |
regexpi |
大文字と小文字を無私して正規表現のマッチング |
regexprep |
正規表現を利用して文字列を置き換え |
新規関数
MATLAB 6.5は、エラーの生成、正規表現、ソートされたデータ、セルから行列への変換、整数の変換、XMLファイルの動作のための新規関数が追加されています。
関数 |
詳細 |
cell2mat |
行列からなるセル配列を1つの行列に結合 |
false |
False配列 |
int64 |
符号付き64ビット整数に変換 |
issorted |
要素の集合がソートされた順番であるかどうかを決定 |
lasterror |
最新のエラーメッセージと関連情報を出力. |
mat2cell |
行列を、行列からなるセル配列に分割 |
orderfields |
構造体配列のフィールドの順番付け |
rethrow |
エラーの再発行 |
true |
True配列 |
uint64 |
符号なし64ビット整数に変換 |
xmlread |
Parse XMLドキュメントを文法解釈し、Document Object Modelノードを出力 |
xmlwrite |
Serialize XMLドキュメントオブジェクトモデルノードをシリアル化 |
xslt |
XSLTエンジンを使ってXMLドキュメントを変換 |
新規のワーニングおよびエラーハンドリング機能
書式付きエラーおよびワーニング文字列. MATLAB 6.5よりも以前は、関数error
およびwarning
は、ここでerror
について示すように、簡単な文字列のみを入力引数として受け入れました。
MATLAB 6.5では、error
およびwarning
は、書式付き文字列を受け入れ、MATLABの関数sprintf
と同様のシンタックスを使って、1つまたは複数のパラメータを受け取ります。error
に対するシンタックスを以下に示します。warning
で同じシンタックスを使います。
error
およびwarning
でこのシンタックスを利用した例を以下に示します。
メッセージ識別子. メッセージ識別子は、エラーまたはワーニングをMATLABが一意的に認識可能にするためにエラーまたはワーニングステートメントに付属するタグです。ワーニングと共にメッセージ識別子を使って、プログラム内の選択したワーニングのサブセットを制御したり、エラーのソースを識別するために報告を行うエラーと共に利用することができます。
メッセージ識別子は、ワーニングの制御(つぎの節を参照)で用いられ、関数lasterr
とlasterror
はエラーのソースの識別がしやすくなります。
MATLABのドキュメントのUsing Message Identifiers with lasterrを参照してください。
ワーニング制御機能. 本リリースでは、MATLABは、M-ファイルプログラムの実行中にワーニングが発生したときに何が起こるかを制御する機能を提供します。利用可能なオプションは以下の通りです。
ワーニング制御をどのように設定したかに応じて、これらのアクションは、コード内のすべてのワーニング、選択した特定のワーニング、呼び出された最新のワーニングのみに影響を与えます。この機能の詳細については、MATLABドキュメントのWarning Controlを参照してください。
既存のプログラムがこの変更によりどのように影響を受けるかを調べるには、これらのリリースノートのWarning Control Upgrade Issuesを参照してください。
構造体に対するダイナミックなフィールド名
MATLABの新規のdynamic field names 機能を使って、実行時に計算されるフィールド名を用いて構造体を参照することができます。下記のドット-括弧シンタックスは、MATLABがexpression
をダイナミックなフィールド名として解釈することを示します。
この追加された機能は、つぎの表にまとめたようにすべてのデータタイプへの完全にダイナミックなアクセスを提供します。
データタイプ |
Static (コンパイル時) |
Dynamic (実行時) |
行列 |
A(2,3) |
A(m,n) |
セル配列 |
C{4} |
C{k*2} |
構造体 |
S.name |
S.(field) |
この機能の詳しい情報は、MATLABドキュメントのDynamic Field Namesを参照してください。
getfieldとsetfieldは廃止されています. つぎの2つの表現は、機能的には等価ですが、前者(ダイナミックなフィールド名を利用)は、実行速度が改良され、コードや読みやすくなっています。以下について、読みやすさを比較してください。
ダイナミックなフィールド名は関数getfield
およびsetfield
について改良されていますが、これらの2つの関数は、最終的には、MATLAB言語から削除される予定です。本リリースにおいては、getfield
およびsetfield
は、ダイナミックなフィールド名の利用を推奨するワーニングが生成されます。
暗示的な行の継続
MATLAB 6.5では、M-ファイルコードをつぎの行に続けたい場合は、ほとんどの場合で、行継続演算子(...
)を使わずに行うことができます。シンタックス的に不完全なステートメントは、つぎの行に自動的に継続されます。
たとえば、つぎのコマンドは継続演算子を使いません。コマンドが完全に入力されるまで、任意の行のつぎの行に対するプロンプトは変わっていることに注意してください。
>> addpath('c:/usr/local/matlab/mytools', ...>> 'c:/usr/local/matlab/work', ...>> 'c:/usr/local/matlab/demos');
=
, +
, &&
, >
, ==
)が右側のオペランドをもたない状態で含まれるステートメント
最初のステートメントが真でない場合があります。文字列からなる配列または文字列からなるセル配列をつぎの行に続ける場合は、MATLABは各行の最後にそのことを暗示するセミコロンを挿入します。たとえば、つぎのステートメントは、2行のキャラクタ配列を作成します。
このステートメントは、明示的な継続を利用し、1行のキャラクタ配列を作成します。
配列の作成でのこの挙動は、旧バージョン以降変更されていません。
文字列をつぎの行に継続することはできません。コーテーションマーク('
)は、常に同じ行で開いたり閉じたりしなければなりません。
ショートカットのための新規の論理ANDおよびOR演算子
本リリースよりも以前は、MATLABの&
(AND
) および|
(OR
) 演算子は、論理演算子と配列演算子の2つの目的をもっていました。これらの2つの役割は矛盾することがしばしばあり、技術的に不正確だったり、実行が混乱していました。
MATLAB 6.5は、2つのAND
とOR
演算子、&&
と ||
を追加しています。これらの新規演算子を使って、特にショートカットが必要なときに、複合化された論理表現を実行します。配列の要素単位の演算には、& および | 演算子を使ってください。
&&
と ||
を使ったショートカットに関する説明はMATLABドキュメントのShort-circuit Operatorsを参照してください。
ismemberの新規出力
関数ismember
は、集合のどのメンバーが存在するインデックスを示す第二出力をオプションで出力します。シンタックスは、つぎの通りです。
このシンタックスを利用する際に、ismember
は、S
のメンバであるA
の各要素に対して、S
の最高のインデックスを含むインデックスベクトルloc
を出力します。S
にないA
の要素については、ismember
は0
を出力します。
a = reshape(1:5, [5 1]) set = [5 2 4 2 8 10 12 2 16 18 20 3]; [tf, index] = ismember(a, set); index index = 0 8 12 3 1
新規関数 - trueおよびfalse
MATLABは、論理演算に対する2つの新規関数true
とfalse
を提供します。true
はlogical(1)
の短縮形で、false
はlogical(0)
の短縮形です。これらの関数は、両方共、論理 1
または 0
からなる多次元配列を作成可能な入力引数を受け取ります。
つぎの例題は、タイプlogical
の3行5列配列を作成します。
true(n)
はlogical(ones(n))
と等価ですが、true(n)
は、使いやすく、プログラムの読みやすさを改良します。詳細は、help true
またはhelp false
とタイプしてください。
ループ内のtry-catchの割り込み
try
-catch
ステートメントは、Ctl+C割り込みをキャッチしません。本リリース以前には、try
ブロックの実行中にCtl+C を押すと、対応するcatch
ブロックにジャンプしました。MATLAB 6.5では、Ctl+Cは、どのコードが実行されていても、実行をアボートし、コマンドウィンドウにコントロールを戻します。
たとえば、MATLAB 6.5では、Ctl+Cを使って以下に示すループに割り込むことができます。従来のバージョンのMATLABではこのループは割り込みできませんでした。
64ビット整数のサポート - int64, uint64
MATLABは、符号付きおよび符号なしの64ビット整数をサポートします。関数int64
およびuint64
を使って、数値を符号付きまたは符号なし64ビット整数に変換します。
64ビットファイルの取り扱い
MATLABの低レベルファイルハンドリング関数(fopen
, fseek
, ftell
, etc.)は、64ビットファイルオフセットをサポートします。これにより、2 GBよりも大きいサイズのファイルについて低レベルのI/O操作を行うことができます。(旧バージョンのMATLABでの制限は、2^31-1
バイトまたは2 GBでした)。
64ビットのサポートは、それぞれのオペレーティングシステムの制限により、以下のプラットフォームでは利用できません 。
IBM-AIXプラットフォームでは、64ビットファイルI/Oは参照のみをサポートされています。2 GBよりも小さいサイズのみを書き出すことができます。
MATLAB Audio機能の強化
新規関数AUDIODEVINFO. Windows 32ビットマシンにおいて、audiodevinfo
は、インストールされているオーディオデバイスの情報を出力します。
AUDIORECORDERとAUDIOPLAYERに対するUNIXプラットフォームのサポート.. audioplayer
とaudiorecorder
は、Java Runtime Environment 1.3 およびそれ以降を実行中のUNIXプラットフォームで利用可能です。
AUDIORECORDERとAUDIOPLAYERの機能強化. . audioplayer
とaudiorecorder
は、オーディオデバイスIDを入力として受け取ることができます。デバイスIDは、audiodevinfo
から取得できます。
audioplayer
は、audiorecorder
を入力として受け取ることができます。
24ビットの記録と再生のサポート. インストールされている24ビットオーディオデバイスをもつ32ビットWindowsマシンについて、audiorecorder
およびaudioplayer
は、それぞれ24ビットの記録と再生をサポートします。
WAVREADとWAVWRITEの改良. . wavread
とwavwrite
は、24ビットおよび32ビットの.wav
ファイルの読み込みと書き出しをサポートします。
ワークスペースブラウザのサポート. ワークスペースブラウザでオーディオオブジェクトを右クリックすると、再生/記録のコントロールをもつコンテキストメニューを表示します。
新規のMATLABタイマオブジェクト
MATLABは、MATLABコマンドの実行をスケジューリングするタイマオブジェクトを提供します。タイマを利用するには、以下のステップを実行する必要があります。
timer
を呼び出すことによってタイマオブジェクトを作成します。
start
またはstartat
を呼び出すことによりタイマを起動します。
詳細は、Using MATLAB Timersを参照してください。
![]() | 数学機能 | グラフィックス機能 | ![]() |