2018/11/10 Last update
このページは MATLAB データの作成 @本家UBサイト に恒久的に移転しました。このページもネット上に残っていますが、最新の情報はリンク先を参照して下さい。
変数 variable を作成するには,= で値を代入すれば良い。なお,R では = のほかに矢印 <- も使うことができるが,このサイトでは混乱を防ぐために原則として = を使う。
また,C 言語や Java 言語では,代入の前に変数の宣言を行う必要があるが,MATLAB ではその必要はない(1)。
最もシンプルな例を下に示した。>> a = 1 で変数 a に 1 を代入すると,自動的に代入の結果が表示される。
これは少々うっとおしいので,>> b = 2; のように行末にセミコロンをつけると結果が表示されなくなる。Workspace に変数の一覧が表示されているので見てみよう。>> a + b で,計算の結果が表示される。
>> a=1
a =
1
>> b=2;
>> a+b
ans =
3
右の図のような Excel シートがあるとする。まず,このシートが保存されているフォルダに移動し,ダブルクリックでこのファイルを開くと,インポート用のウィンドウが開く。インポート用の重要なパラメーターは以下の通り。
読み込み範囲の設定
読み込みたい範囲を選択する。
変数の型の設定
列の名前は,Excel ファイルを開いた時点で一番上の行の名前になっている。他の行にしたい場合は,Variable Names Row で変更する。
1行目で変数の型を設定することができる。とりあえず Group と Gender は Cell, Weight と Height は Number にしておく。
変数の形式の設定
Column vectors, Matrix, Cell Array, Table から選択することができる。まずは Column vectors を選んでみる。
Group | Gender | Weight | Height |
Smoke | M | 68.2 | 175 |
Smoke | M | 75.1 | 172 |
Smoke | M | 77.7 | 178 |
Smoke | F | 48.0 | 157 |
Smoke | F | 56.7 | 153 |
Smoke | F | 54.3 | 149 |
Non-smoke | M | 55.1 | 179 |
Non-smoke | M | 48.9 | 172 |
Non-smoke | M | 51.0 | 169 |
Non-smoke | F | 42.0 | 160 |
Non-smoke | F | 40.6 | 155 |
Non-smoke | F | 41.1 | 152 |
MATLAB では行列が基本となるデータ形式なので,行列を作るための関数がたくさん用意されている。
ここでは,Command Window を利用した行列の作り方を解説する。
横の行列と縦の行列は,次のように作成する。
>> x=[1 1 2 2 3 3]
x =
1 1 2 2 3 3
>> y=[1;1;2;2;3;3]
y =
1
1
2
2
3
3
つまり,セミコロンが改行を意味する。これを考えると,複数の行および列をもつ行列 z は
>> z=[1 1;2 2;3 3]
z =
1 1
2 2
3 3
のようになる。
magic 関数で,魔方陣の行列を作ることができる。>> magic (n) で,n x n 行の魔方陣ができる。
>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
rand 関数で,乱数の行列を作ることができる。>>
rand(n) で n x n 行の行列を作るパターンと,>> rand(m,n) で m 行 n 列の行列を作るパターンがある。
>> rand(5)
ans =
0.0292 0.2373 0.2316 0.3674 0.7962
0.9289 0.4588 0.4889 0.9880 0.0987
0.7303 0.9631 0.6241 0.0377 0.2619
0.4886 0.5468 0.6791 0.8852 0.3354
0.5785 0.5211 0.3955 0.9133 0.6797
>> rand(1,3)
ans =
0.1366 0.7212 0.1068
normrnd 関数で,正規分布 normal distribution に従う乱数の行列を作ることができる。>> normrnd(mean,sd,row,column) である。
>> B=normrnd(2,1,5,10)
B =
1.8048 2.1832 1.4680 0.9358 2.3919
1.7824 0.9702 3.6821 3.6035 0.7493
1.6969 2.9492 1.1243 3.2347 1.0520
2.0230 2.3071 1.5162 1.7704 1.2589
2.0513 2.1352 1.2880 0.4938 1.4922
2.8261 2.5152 0.8258 1.5554 1.6794
3.5270 2.2614 1.8078 1.8441 2.0125
2.4669 1.0585 1.7259 2.2761 -1.0292
1.7903 1.8377 3.5301 1.7388 1.5430
2.6252 1.8539 1.7510 2.4434 3.2424