いろいろなデータを作ってみる。
等間隔のデータを作る
次のような奇数のデータを作ってみる。
A = \left( \begin{array}{cc} 1 & 3 & 5 & 7 & 9 \end{array} \right)
初期値が1、間隔が2、最終値が9となるので、次のように記述する。
> A = 1:2:9;
> A
A =
1 3 5 7 9
ちなみに、真ん中の数字を省略すると、間隔1のデータが生成できる。
> A = 1:9;
> A
A =
1 2 3 4 5 6 7 8 9
数学関数の値を作る
前項の「等間隔のデータを作る」で作ったデータから、数学関数のデータを作り出せる。ここでは次の式、
y = \sin(x) \hspace{20pt} (0 \leq x \leq 2\pi)
の $y$ を配列で求めてみる。まずは $x$ の値を作る。整数だとなめらかなsinカーブにならないので、実数で定義してみよう。間隔は0.01ぐらいで。
尚、円周率 $\pi$ は、MATLABでは定数pi
で参照できる。
> X = 0.0:0.01:2 * pi;
> X
X =
... %大量のデータが出力されるので省略
では X
から$y$ の値を生成してみる。
> Y = sin(X);
> Y
Y =
... %やはり大量のデータが出力されるので省略
とても簡単。が、これでは気軽に確認できない。もうちょっとこう視覚的に見たいので、少しだけ勇み足でplot
関数を使ってグラフを表示してみる。(plot
関数の細かい説明は別トピックスに記載する予定。)
> plot(X, Y);
こんなグラフが出ればOK。
sin関数は、引数に1次元配列だけでなく、スカラ値(単に一つの数値)、行列も入力できる。
> X = [ 0 pi/2 ; pi pi * 3/2 ];
> Y = sin(X);
> Y
Y =
0 1.0000
0.0000 -1.0000
各要素毎にsin関数を適用した値の行列が返される。
他にも同じような使い方ができる関数があると思う。
ランダムなデータを作る
肝になるのはrand
関数。デフォルトで0~1の間の実数を返す。
基本的な使い方は、引数のとり方を2つ覚えれば十分かと。
まずは引数を1つだけ指定した場合。引数をnとした場合、n行n列で、0~1の間の乱数を要素とする行列を返す。
> %
> X = rand(1);
> X
X =
0.2714
> X = rand(2);
> X
X =
0.2174 0.2305
0.6897 0.1721
次に引数を2つ指定した場合。第1引数をm、第2引数をnとすると、m行n列で、0~1の間の乱数を要素とする行列を返す。
> X = rand(2, 3);
> X
X =
0.9545 0.2276 0.1522
0.7410 0.7689 0.6552