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が一意的に認識可能にするためにエラーまたはワーニングステートメントに付属するタグです。ワーニングと共にメッセージ識別子を使って、プログラム内の選択したワーニングのサブセットを制御したり、エラーのソースを識別するために報告を行うエラーと共に利用することができます。

メッセージ識別子の例を以下に示します。

メッセージ識別子は、ワーニングの制御(つぎの節を参照)で用いられ、関数lasterrlasterrorはエラーのソースの識別がしやすくなります。

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-ファイルコードをつぎの行に続けたい場合は、ほとんどの場合で、行継続演算子(...)を使わずに行うことができます。シンタックス的に不完全なステートメントは、つぎの行に自動的に継続されます。

たとえば、つぎのコマンドは継続演算子を使いません。コマンドが完全に入力されるまで、任意の行のつぎの行に対するプロンプトは変わっていることに注意してください。

特に、MATLABは以下について自動的に継続します。

最初のステートメントが真でない場合があります。文字列からなる配列または文字列からなるセル配列をつぎの行に続ける場合は、MATLABは各行の最後にそのことを暗示するセミコロンを挿入します。たとえば、つぎのステートメントは、2行のキャラクタ配列を作成します。

このステートメントは、明示的な継続を利用し、1行のキャラクタ配列を作成します。

配列の作成でのこの挙動は、旧バージョン以降変更されていません。

文字列をつぎの行に継続することはできません。コーテーションマーク(')は、常に同じ行で開いたり閉じたりしなければなりません。

ショートカットのための新規の論理ANDおよびOR演算子

本リリースよりも以前は、MATLABの& (AND) および| (OR) 演算子は、論理演算子と配列演算子の2つの目的をもっていました。これらの2つの役割は矛盾することがしばしばあり、技術的に不正確だったり、実行が混乱していました。

MATLAB 6.5は、2つのANDOR演算子、&&|| を追加しています。これらの新規演算子を使って、特にショートカットが必要なときに、複合化された論理表現を実行します。配列の要素単位の演算には、& および | 演算子を使ってください。

&&|| を使ったショートカットに関する説明はMATLABドキュメントのShort-circuit Operatorsを参照してください。

ismemberの新規出力

関数ismemberは、集合のどのメンバーが存在するインデックスを示す第二出力をオプションで出力します。シンタックスは、つぎの通りです。

このシンタックスを利用する際に、ismemberは、SのメンバであるAの各要素に対して、Sの最高のインデックスを含むインデックスベクトルlocを出力します。SにないAの要素については、ismember0を出力します。

たとえば、つぎのようになります。

新規関数 - trueおよびfalse

MATLABは、論理演算に対する2つの新規関数truefalseを提供します。truelogical(1)の短縮形で、falselogical(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ビットのサポートは、以下のプラットフォームで可能です。

64ビットのサポートは、それぞれのオペレーティングシステムの制限により、以下のプラットフォームでは利用できません

IBM-AIXプラットフォームでは、64ビットファイルI/Oは参照のみをサポートされています。2 GBよりも小さいサイズのみを書き出すことができます。

MATLAB Audio機能の強化

新規関数AUDIODEVINFO.   Windows 32ビットマシンにおいて、audiodevinfoは、インストールされているオーディオデバイスの情報を出力します。

AUDIORECORDERとAUDIOPLAYERに対するUNIXプラットフォームのサポート..   audioplayeraudiorecorderは、Java Runtime Environment 1.3 およびそれ以降を実行中のUNIXプラットフォームで利用可能です。

AUDIORECORDERとAUDIOPLAYERの機能強化. .   audioplayeraudiorecorderは、オーディオデバイスIDを入力として受け取ることができます。デバイスIDは、audiodevinfoから取得できます。

audioplayerは、audiorecorderを入力として受け取ることができます。

24ビットの記録と再生のサポート.   インストールされている24ビットオーディオデバイスをもつ32ビットWindowsマシンについて、audiorecorderおよびaudioplayerは、それぞれ24ビットの記録と再生をサポートします。

WAVREADとWAVWRITEの改良. .   wavreadwavwriteは、24ビットおよび32ビットの.wavファイルの読み込みと書き出しをサポートします。

ワークスペースブラウザのサポート.   ワークスペースブラウザでオーディオオブジェクトを右クリックすると、再生/記録のコントロールをもつコンテキストメニューを表示します。

新規のMATLABタイマオブジェクト

MATLABは、MATLABコマンドの実行をスケジューリングするタイマオブジェクトを提供します。タイマを利用するには、以下のステップを実行する必要があります。

  1. 関数timerを呼び出すことによってタイマオブジェクトを作成します。
  2. タイマオブジェクトプロパティを設定することで、実行したいMATLABコマンドや、実行したい時間を設定します(Step 1では、タイマオブジェクトの作成時に、プロパティを設定することができます)。
  3. 関数startまたはstartatを呼び出すことによりタイマを起動します。

詳細は、Using MATLAB Timersを参照してください。


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