MATLAB: データの作成
informatics/matlab/data_input
2018/11/10 更新
- 変数の作成
- 行列の作成
- Excel からの読み込み
- Command Window 上で作成
広告
MATLAB の基本ルール
> 文字列はシングルクォーテーション ' ' で囲む。ダブルクォーテーション " " は使わない (1)。
> コマンドの最後にセミコロンをつけると結果を表示しない (1)。
> 変数の名前: 最初の文字は英文字で,その後は英文字,数字,アンダースコアが使える (1)。最大 63 文字。大文字と小文字は区別され,漢字は使えない。
変数の作成
変数 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 シートがあるとする。まず,このシートが保存されているフォルダに移動し,ダブルクリックでこのファイルを開くと,インポート用のウィンドウが開く。インポート用の重要なパラメーターは以下の通り。
読み込み範囲の設定
読み込みたい範囲を選択する。
変数の型の設定
列の名前は,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
広告
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。
References
- 小林 2014a. 最新 MATLAB ハンドブック 第五版. 秀和システム.