投稿

9月, 2019の投稿を表示しています

[MATLAB] 3.2 データ読み込み・解析準備

イメージ
3.2 データ読み込み・解析準備 ※ 以下の例では一部,基本コマンドを示す目的で,あえてまどろっこしい命令を実行している場合があります。 (1) フォルダーの移動  図 1.1の①②を使い,データファイル (wqdt.csv) があるフォルダーに移動する。 (2) データを読み込む  コマンドウィンドウで以下のコマンドを実行し,データを読み込む。 load wqdt.csv [↵] → データが読み込まれる。画面左側のワークスペースペインには読み込まれたデータが wqdt という変数名で登録され,そのサイズが236行×20列であることが示されている。 (3) データの名前を付け直す  水温とDOのデータを別々の変数として登録しなおす WT=wqdt(:,1:10); DO=wqdt(:,11:20); [↵] (4) 水温とDOのデータをグラフとして表示する plot(WT); [↵] plot(DO); [↵] 図 3.1 異常値削除前の水温のグラフ (5) 水温データに残っている異常値を編集する:  今回のデータでは,欠測の場合には “NaN” というコードが入っているはずだが,一部の異常値が残されたままになっている。例えば,水温データの場合,図 3.1の赤枠の部分は通常考えられるよりも低い値が記録されている。この値を欠測扱いするようデータを編集する。 1) 水温について異常値が入っている箇所を検索する: [i,j]=find(WT<5) [↵] → 5より小さいデータが記録された場所 (i行目,j列目) が表示される。 2) データを確認する: for k=1:length(i), disp(WT(i(k),j(k))); end [↵] → 確かに5より小さい値が入っていることが確認できる。 3) データを欠測扱いにする: for k=1:length(i), WT(i(k),j(k))=NaN; end [↵] 4) 編集後のデータを確認する: for k=1:length(i), disp(WT(i(k),j(k))); end [↵] 5) グラフを表示してみる: plot(WT); 図 3.2 異常値削除後の水温のグラフ

[MATLAB] 3.1 使用するデータ

 MATLABでは簡単に大量のデータを扱うことができる。ここでは,過去に採取された水質データを使いながら,MATLABを環境解析に使用する方法を説明する。 3.1 使用するデータ  サンプルデータ “wqdt.csv” には,ある湖の10の水深で測定された水温とDOのデータが記録されている。データ記録期間は10年間で,この間およそ2回/月の頻度で観測されて結果である。データサイズは236行×20列で,1〜10列が水温,11〜20列が溶存酸素濃度 (DO) のデータ,どちらも左の列ほど浅い水深でのデータとなっている。一部,データを観測できなかった(欠測)場合があり,そこには “NaN” 1 というコードが入っている。  サンプルデータは こちら(→) 。 “Not a Number” の意味。 ↩︎

[MATLAB] 2.3 行列の要素を抽出する

2.3 行列の要素を抽出する  5行×5列の行列を使い,行列の一部を抽出する例を示す。 (1) 1要素のみ >> C=magic(5) C = 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 >> C(2,4) ans = 14 図 2.10 行列要素の抽出例(1)  上の例で “C(2,4)” は,「Cの2行目4列目の要素」を意味する。このように,MATLABにおいて行列要素の表記は「行列名(行,列)」となっている。 (2) 行要素全て >> C(1,:) ans = 17 24 1 8 15 図 2.11 行列要素の抽出例(2)  “C(1,:)” は,「Cの1行目の要素全て」を意味する。括弧内の “1” が1行目,“:” は全ての列要素であることを示している。 (3) 列要素全て >> C(:,1) ans = 17 23 4 10 11 図 2.12 行列要素の抽出例(3)  こちらの例では先の例と括弧内の順序が異なっており,1列目のみが抽出される。 (4) 複数の行要素全て  次の例では,2行目と4行目の要素を全て抽出している。行の指定において “[2,4]” とすることで,同時に2つの行を指定している。 >> C([2,4],:) ans = 23 5 7 14 16 10 12 19 21 3 図 2.13 行列要素の抽出例(4)  次の例では,行の指定を “2:5” としている。この場合,「2から5までの整数」という意味になる。つまり,2, 3, 4, 5行目を指定していることになる。 >> C(2:5,:) ans = 23 5 7 14 16

[MATLAB] 2.2 スクリプト

イメージ
2.2 スクリプト  MATLABではコマンドウィンドウにて逐次的にコマンドを入力し,作業を進めることができる。しかし,まとまった処理を行いたい場合もある。そのような場合,必要なコマンドをファイルに記述しておき,これを一度に実行することができる。このようなファイルを「スクリプト」と呼ぶ。 (1) スクリプトファイルを作成する  例として,ここまでの例をまとめたスクリプトを作成してみる。 1) ツールバーの [New Script] ボタンをクリックする。 2) 表示されたエディターに,以下のコマンドを記入する。  ※結果を比較できるよう,変数名をあえて小文字にしている。  ※“%” 以降はコメント文で,命令には直接影響しない。必ずしも入力する必要もない。 a=[1,2,3; 4,5,6; 7,8,9]; % 行列aの定義 b=magic(3); % 行列bの定義 s1=a+b; m1=a-b; p1=a*b; p2=a.*b; d1=a/b; d2=a./b; 図 2.7 スクリプトの例(ファイル名:script2_1.m) 3) 図 1.1 の①②を使い,ファイルを保存するフォルダーに移動する。 4) ツールバーの [Save] ボタンをクリックし,ファイル名を付けて保存する 1 。 (2) スクリプトを実行する  先ほど作成したスクリプトファイルを実行してみる。 1) 図 1.1 の①に保存したスクリプトファイルが表示されていることを確認する。  → もし表示されていない場合,ファイルの場所に移動する。 2) コマンドウィンドウにて,スクリプト名※を入力し実行する。  以上の操作で,コマンドウィンドウに結果は表示されないものの, 図 1.1 ③のワークスペースパネルにスクリプトを実行することで作成された変数(a, b, p1など)が表示されているはずである。これらの具体的な中身を確認したい場合,ワークスペースにおいて変数名をダブルクリックするか,コマンドウィンドウにて変数名のみを入力しリターンキーを押す。 >> script2_1 >> a a = 1 2 3 4 5 6 7 8 9

[MATLAB] 2.1 簡単な演算

2.1 簡単な演算 (1) 行列の作成方法  コマンドウィンドウにて,以下のコマンドを入力する。なお “[↵]” はリターンキーを押すことを表す。 A=[1,2,3; 4,5,6; 7,8,9] [↵] リターンキーを押すと,コマンドウィンドウに次のような結果が出力される。 >> A=[1,2,3; 4,5,6; 7,8,9] A = 1 2 3 4 5 6 7 8 9 図 2.1 コマンド入力の結果(1)  “>>” で始まる行は,入力したコマンドを表し,その下が結果を表す。MATLABでは [ ] で区切られた情報は行列 1 として認識される。また,行列の要素の区切りはカンマ (,) で,行の区切りはセミコロン (;) で表される。つまり,上の例では3行×3列の行列を入力しており,1行目の要素が 1, 2, 3である。結果には3行3列の行列Aが作成されたことが示されている。  次に,以下のコマンドを入力する。 B=magic(3) [↵]  結果は次の通りとなる。 >> B=magic(3) B = 8 1 6 3 5 7 4 9 2 図 2.2 コマンド入力の結果(2)  この例で使用した “magic( )” という命令は,「魔方陣 2 」を作成しなさいという命令で,括弧内の数字は魔方陣の大きさを表す。今回の場合,3行×3列の魔方陣を作成しなさい,ということになる。結果は変数Bに格納される。  なお,今回使用した “magic( )” のように,ある条件を与えたときにその条件に応じてあらかじめ決められた演算を行うプログラムのことを「関数 (function)」という。今回の場合,“3” が条件で,これにもとづき3×3の魔方陣が作成されている。関数の使い方はヘルプで確認できる。“magic( )”について確認したものが以下である: >> help magic magic Magic square. magic(N) is an N-by-N matrix constructed from t

[MATLAB] 1. イントロダクション

イメージ
1.1 MATLABとは  米国Mathworks社が開発した数値解析ソフトウェアである。行列(ベクトルを含む)計算を行うことを想定して開発され,多量のデータを容易に扱うことができる。あらかじめ多数の関数が用意され,高度な演算を容易に実行することもできる。特定の機能に特化したオプション(“Toolbox”)を導入すること,また自分自身で関数を作成することで,MATLABの機能を拡張していくことができる。 1.2 MATLABの画面構成  MATLABを起動すると以下の画面が表示される。この画面を「デスクトップ」と呼ぶ。 図 1.1 MATLABデスクトップ デスクトップには以下のようなエリア(「パネル」と呼ぶ)がある。 ① フォルダー位置 〜 現在作業を行っているフォルダーの位置を示す。 ② 現在のフォルダー (Current Folder) 〜 現在作業を行っているフォルダーの内容を示す。 ③ ワークスペース (Workspace) 〜 使用中の変数を示す。 ④ コマンドウィンドウ (Command Window) 〜 命令を入力する。命令に対する結果もここに表示される。