実習の準備
この実習を行う前に, 実習用ディレクトリの作成を行っておいてください.
MATLAB を起動し, 作業ディレクトリを MATLAB から実習用のディレクトリに変更してください.
プログラムをキーインする
MATLAB のコマンドウィンドウ(中央の,大きなウィンドウ)では, プログラムを直接に入力し,実行することができます. とはいえ, 長いプログラムをこの方法で実行することには無理があります. 「コマンド」を実行するときにこの方法を用います.
テキストの例題 ex1102 をやってみましょう.
1 + 2
とキーイン(入力)して Enter キーを押してみてください.
このプログラムが実行され,"3" という結果が返されます(下図).
スクリプトファイルの作成と実行
コマンドは直接にキーインして実行しますが, 実行と修正を繰り返して完成させる長いプログラムは, プログラムを書いて保存し,それを実行します.
プログラムを書くには,MATLAB の [ホーム] タブにある, [新規スクリプト] をマウスで左クリックします.
「エディター」があらわれます.ここにプログラムを書きます.
エディターで,
1+2
というように,1行だけプログラムを書いてください. 書いたらこのプログラムを保存します. エディターの [保存] のアイコンの下側 (下向きの矢印を)マウスで左クリックして, [名前を付けて保存] を選択(左クリック)してください.
プログラムは,実習用ディレクトリ(下図では MyMATLAB)に, MATLAB Code file という形式で保存します. 拡張子は m です. デフォルトで Untitled.m というファイル名が表示されますので, Untitled という部分を書き換えます. MATLAB プログラムを書いたファイルは 「スクリプト M ファイル」と呼ばれることもあります.
今書いたプログラムは,ex1102.m という名前で保存しましょう.
現在のフォルダーである MyMATLAB の中に, ex1102.m というファイルが保存されました.
保存されたプログラムを実行するには, コマンドウィンドウで, 実行したいプログラムのファイル名(拡張子は不要)をキーインします. その前に,エディターが広いスペースを占めているので,最小化しておきましょう.
エディターの右上にある,下向きの三角印をクリックして, エディターアクションを表示してください.
表示されたエディターアクションから「最小化」を選択します.
エディターが最小化され,右隅に張り付きます.
最小化されたエディターにマウスのカーソルをあわせるか, 左クリックすると,再びエディターが現れます. 最小化の操作を一度行った後は, 上図の「エディター」をクリックすればエディターを開閉できます.
それでは,ex1102.m を実行しましょう.
コマンドウィンドウで ex1102
と入力して Enter キーを押します.
拡張子は不要です.
注意:作業ディレクトリは実習用ディレクトリになっていますか? そうなっていなければ, 作業ディレクトリを実習用ディレクトリに変更してください.
プログラムの編集を終えてエディターを閉じるには, 他の Windows アプリケーションと同様に, ウィンドウの右上にある X 印(閉じる)をマウスで左クリックしてください.
あるいは, エディターではひとつのスクリプトごとにひとつのタブが開かれますので, タブのラベルの横にある X 印をマウスで左クリックしてください. 開いているスクリプトがひとつだけの場合は, スクリプトのウィンドウが閉じられます. 複数のスクリプトを表示している場合には, X 印をクリックしたタブだけが閉じられます.
1+2 と書いただけのプログラムはあまりに味気なさすぎるので, もう少しだけ長いプログラムを書いて実行してみましょう. テキスト 1.1.5 節の例題 ex1106 をやってみます. (この例題の番号は ex1105 となるべきですが,改訂版第1刷では ex1106 となっています.以下では,改訂版第1刷のまま,ex1106 と表記します.)
エディタを閉じた場合には,新たに開いてください. エディタを閉じていなければ, タブを切り替えることで新しいスクリプトを書くことができます. 新規のタブを開くには,下図の + 印をクリックします.
下図に示すように,3行のプログラムを書いてください. テキストでは3行目の最後にセミコロン(;)がありますが, これは省略できます. 1行目と2行目の最後にはセミコロンを入れてください.
プログラムが書けたら,例題 ex1102 と同様に, 名前をつけて作業ディレクトリに保存してください. 名前は ex1106.m とします. 現在のフォルダーである MyMATLAB の中に, ex1106.m というファイルが保存されました.
コマンドウィンドウで,
ex1106
とキーインして,Enter キーを押してください. 下図のようなグラフがあらわれます. グラフィックスを表示するウィンドウは 「フィギュアウィンドウ」と呼ばれます. MATLAB は強力なグラフィックス機能を持っています. 第5章で学習します.
例題 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 から始まって (6.283...)まで, 201個の数字から構成される数列(ベクトル)が表示されます. これが変数 X に代入されます.
注意:最後にセミコロンをつけて X = 0: pi/100: 2*pi;
とすると,計算は実行されますが結果が表示されません.
ここではセミコロンをつけないでください.
MATLAB のプログラムでは,
セミコロンがついた行の実行結果は表示されません.
スクリプト ex1106.m では,
X の内容を表示させる必要がないので,
セミコロンをつけていました.
2行目は
Y = sin(X);
です.右辺の sin は,実数値を入力すると, sin(三角関数のひとつであるサイン) の値を計算して出力する関数です. MATLAB には,たくさんの関数が用意されています. 関数は,入力を受け取って,それに何らかの操作を行い, 結果を返します.関数への入力は, 関数名の後に続くかっこの中に書きます. かっこの中に書かれる入力を「引数」(ひきすう)と呼びます.
この例題で入力として与えられているのは, ひとつの数値ではなく, 数値の集まりであるベクトル X です. この場合,ベクトル X の要素 (0 から までの,201個の数字ごとに, sin の値が計算されます. つまり, , , , ..., が計算されます. この数値の並びが新しいベクトルとなり,左辺の Y に代入されます. コマンドウィンドウで
Y = sin(X)
とキーインし,確かめてみましょう(注意:セミコロン不要). MATLAB の関数の多くは, 引数としてベクトルや行列(ベクトルを並べたもの)をとることができます. これは MATLAB の大きな特徴です.
3行目は
plot(X, Y)
です.plot は,sin と同じく,MATLAB の関数です.
plot(X, Y)
という式はベクトル
X と Y を plot 関数に入力することを意味しています.
横軸を X ,縦軸を Y として,X と Y の値の組を点としてプロットし,
それを折れ線で結びます.例題 ex1106 では,
,
,
,
...,
という点をプロットし,これらの点を折れ線で結んでいます.
たくさんの点をプロットしているので,
点は曲線でなめらかに結ばれているように見えます.