MATLAB プログラムの実行

MATLAB のプログラムを実行する方法を説明します. 最初に,コマンドウィンドウで,プログラムを直接に入力します (テキストでは「プログラムをキーインする」と書いてあります). 次に,プログラムを書いたファイル(スクリプトファイル) を作成し,それを実行する方法を説明します.

実習の準備

この実習を行う前に, 実習用ディレクトリの作成を行っておいてください.

MATLAB を起動し, 作業ディレクトリを MATLAB から実習用のディレクトリに変更してください.

プログラムをキーインする

MATLAB のコマンドウィンドウ(中央の,大きなウィンドウ)では, プログラムを直接に入力し,実行することができます. とはいえ, 長いプログラムをこの方法で実行することには無理があります. 「コマンド」を実行するときにこの方法を用います.

テキストの例題 ex1102 をやってみましょう. 1 + 2 とキーイン(入力)して Enter キーを押してみてください. このプログラムが実行され,"3" という結果が返されます(下図).

ex1102 1+2

スクリプトファイルの作成と実行

コマンドは直接にキーインして実行しますが, 実行と修正を繰り返して完成させる長いプログラムは, プログラムを書いて保存し,それを実行します.

プログラムを書くには,MATLAB の [ホーム] タブにある, [新規スクリプト] をマウスで左クリックします.

create a new script file

「エディター」があらわれます.ここにプログラムを書きます.

create a new script file

エディターで,


1+2

というように,1行だけプログラムを書いてください. 書いたらこのプログラムを保存します. エディターの [保存] のアイコンの下側 (下向きの矢印を)マウスで左クリックして, [名前を付けて保存] を選択(左クリック)してください.

save a script M file

プログラムは,実習用ディレクトリ(下図では MyMATLAB)に, MATLAB Code file という形式で保存します. 拡張子は m です. デフォルトで Untitled.m というファイル名が表示されますので, Untitled という部分を書き換えます. MATLAB プログラムを書いたファイルは 「スクリプト M ファイル」と呼ばれることもあります.

save a script M file

今書いたプログラムは,ex1102.m という名前で保存しましょう.

save a script M file

現在のフォルダーである MyMATLAB の中に, ex1102.m というファイルが保存されました.

save a script M file

保存されたプログラムを実行するには, コマンドウィンドウで, 実行したいプログラムのファイル名(拡張子は不要)をキーインします. その前に,エディターが広いスペースを占めているので,最小化しておきましょう.

エディターの右上にある,下向きの三角印をクリックして, エディターアクションを表示してください.

open Editor Action

表示されたエディターアクションから「最小化」を選択します.

minimize Editor

エディターが最小化され,右隅に張り付きます.

minimized Editor

最小化されたエディターにマウスのカーソルをあわせるか, 左クリックすると,再びエディターが現れます. 最小化の操作を一度行った後は, 上図の「エディター」をクリックすればエディターを開閉できます.

それでは,ex1102.m を実行しましょう. コマンドウィンドウで ex1102 と入力して Enter キーを押します. 拡張子は不要です.

注意:作業ディレクトリは実習用ディレクトリになっていますか? そうなっていなければ, 作業ディレクトリを実習用ディレクトリに変更してください.

run a script M file

プログラムの編集を終えてエディターを閉じるには, 他の Windows アプリケーションと同様に, ウィンドウの右上にある X 印(閉じる)をマウスで左クリックしてください.

close editor window

あるいは, エディターではひとつのスクリプトごとにひとつのタブが開かれますので, タブのラベルの横にある X 印をマウスで左クリックしてください. 開いているスクリプトがひとつだけの場合は, スクリプトのウィンドウが閉じられます. 複数のスクリプトを表示している場合には, X 印をクリックしたタブだけが閉じられます.

close editor window

1+2 と書いただけのプログラムはあまりに味気なさすぎるので, もう少しだけ長いプログラムを書いて実行してみましょう. テキスト 1.1.5 節の例題 ex1106 をやってみます. (この例題の番号は ex1105 となるべきですが,改訂版第1刷では ex1106 となっています.以下では,改訂版第1刷のまま,ex1106 と表記します.)

エディタを閉じた場合には,新たに開いてください. エディタを閉じていなければ, タブを切り替えることで新しいスクリプトを書くことができます. 新規のタブを開くには,下図の + 印をクリックします.

new script

下図に示すように,3行のプログラムを書いてください. テキストでは3行目の最後にセミコロン(;)がありますが, これは省略できます. 1行目と2行目の最後にはセミコロンを入れてください.

edit ex1106

プログラムが書けたら,例題 ex1102 と同様に, 名前をつけて作業ディレクトリに保存してください. 名前は ex1106.m とします. 現在のフォルダーである MyMATLAB の中に, ex1106.m というファイルが保存されました.

save a script M file (ex1106)

コマンドウィンドウで,


ex1106

とキーインして,Enter キーを押してください. 下図のようなグラフがあらわれます. グラフィックスを表示するウィンドウは 「フィギュアウィンドウ」と呼ばれます. MATLAB は強力なグラフィックス機能を持っています. 第5章で学習します.

figure window (ex1106)

例題 ex1106 で書いたプログラムの意味を少し説明しておきます.

1行目は


X = 0:pi/100:2*pi;

です.等式の右辺でベクトルを作り, それを左辺の X に代入しています. 他の多くのプログラミング言語と同様に, 等号( = )は「等しい」という意味ではなく, 右辺を左辺に代入することを意味します.

左辺の X は変数の名前です. ここで X という名前の変数を作っているのです.

MATLAB での変数名には,アルファベットの大文字, アルファベットの小文字,数字, 下線( _ )を用いることができます. 変数名はアルファベットで始まる必要があります (大文字でも小文字でもよい). 大文字と小文字は区別されます.A と a は別の変数です. テキスト p.14 に書かれているように, MATLAB で用意されている関数名や変数名は小文字で始まりますので, ユーザーが自分で作成する変数名は大文字で始めるとよいでしょう.

多くのプログラミング言語では, 変数を作るときに,変数の宣言をしなければなりません. おおざっぱにいえば, その変数に何を入れるのか (たとえば,整数なのか,実数なのか,文字なのか)を明示します. これに対して,MATLAB ではそのような変数宣言は必要ありません.

右辺では,数の並びであるベクトルを作っています. 数を等間隔に並べたベクトルを作るときには,

最初の数 : 数値間の間隔 : 最後の数

と書きます. これは高校数学で習う等差数列を作っていると考えられます. 「最初の数」が初項,「数値間の間隔」が公差です. 0:pi/100:2*pi という式は「0からはじめて, pi/100 きざみで,2*pi まで数を並べたベクトルを作る」 という意味です.pi は円周率 π を表します. コマンドウィンドウで pi と入力して enter キーを押すと, 円周率が表示されます.

コマンドウィンドウで


X = 0: pi/100: 2*pi

と入力して enter キーを押すと (コロンの後に半角スペースを入れても入れなくても同じです), 0 から始まって 2 π (6.283...)まで, 201個の数字から構成される数列(ベクトル)が表示されます. これが変数 X に代入されます.

注意:最後にセミコロンをつけて X = 0: pi/100: 2*pi; とすると,計算は実行されますが結果が表示されません. ここではセミコロンをつけないでください. MATLAB のプログラムでは, セミコロンがついた行の実行結果は表示されません. スクリプト ex1106.m では, X の内容を表示させる必要がないので, セミコロンをつけていました.

vector X

vector X

2行目は


Y = sin(X);

です.右辺の sin は,実数値を入力すると, sin(三角関数のひとつであるサイン) の値を計算して出力する関数です. MATLAB には,たくさんの関数が用意されています. 関数は,入力を受け取って,それに何らかの操作を行い, 結果を返します.関数への入力は, 関数名の後に続くかっこの中に書きます. かっこの中に書かれる入力を「引数」(ひきすう)と呼びます.

この例題で入力として与えられているのは, ひとつの数値ではなく, 数値の集まりであるベクトル X です. この場合,ベクトル X の要素 (0 から 2 π までの,201個の数字ごとに, sin の値が計算されます. つまり, sin 0 sin π 100 sin 2 π 100 , ..., sin 2 π が計算されます. この数値の並びが新しいベクトルとなり,左辺の Y に代入されます. コマンドウィンドウで


Y = sin(X)

とキーインし,確かめてみましょう(注意:セミコロン不要). MATLAB の関数の多くは, 引数としてベクトルや行列(ベクトルを並べたもの)をとることができます. これは MATLAB の大きな特徴です.

vector Y

vector Y

3行目は


plot(X, Y)

です.plot は,sin と同じく,MATLAB の関数です. plot(X, Y) という式はベクトル X と Y を plot 関数に入力することを意味しています. 横軸を X ,縦軸を Y として,X と Y の値の組を点としてプロットし, それを折れ線で結びます.例題 ex1106 では, 0 sin 0 π 100 sin π 100 2 π 100 sin 2 π 100 , ..., 2 π sin 2 π という点をプロットし,これらの点を折れ線で結んでいます. たくさんの点をプロットしているので, 点は曲線でなめらかに結ばれているように見えます.