
プログラミングの基礎知識② -MATLABによるデータ解析-
本日もプログラミングの基礎知識について書きたいと思います。
前回の記事でMATLABやプログラミングを始めた最初の頃は簡単な解析やコードから作成したら良いと説明しました。
ただ、そう言われてもわからないと思われる方が多いと思います。
私もMATLABを勉強し始めた頃に簡単な解析やコードから作成したら良いと言われたことがありますが、どうしたらいいのかわからなかった経験を思い出しました。
そこで、本日と次回の2回に分けて以下のことを前回用いたデータの1名分を用いて詳しく解説しようと思います。
本日
①エクセルデータ(xlsx)を読み込む
②1名分の1日分のデータの平均値と標準偏差を算出する
次回
③for文を用いて9日分のデータの平均値と標準偏差を算出する
④ ③のグラフと作成する(標準偏差は省く)
本日と次回用いるデータは図1になります。
前回と同様ですが、本日は1名分です。
9日間のデータがあり、1日50個のデータ(反応時間)があります。

では、まず①から解説していきます。
①はエクセルファイルを読み込む部分です。
エクセルには、xlsxやcsvなどのファイル様式があります。
今回はxlsxファイルを読み込みます。
このファイル様式によっても使用する関数が変わってきます。
プログラミングを行う上で意識することは細かく指示を書くことを意識するといいかもしれません。
以下のコードでエクセルファイル(xlsx)を読み込みます。
filename = (‘sample_subject1.xlsx’);
data = xlsread(filename);
filenameやdataは自分でわかりやすい名前をつければ大丈夫です。
filename = (‘エクセル名’);の部分で読み込みたいエクセル名を指定します。
今回であれば、sample_subject1.xlsxです。
次にdata = xlsread(filename);でfilenameで指定したエクセルデータを読み込みます。
今回はxlsxファイルなのでxlsreadという関数で読み込みます。
もし、csvの場合はcsvreadになります。
これで実行を押すとMATLABにエクセルデータを読み込めます(図2)。
MATLAB上のワークスペースにdataとfilenameができ、dataを開くと行に50個、列に9個のデータが出てきます。

これで①ができたことになります。
次に②を解説していきます。
②は1名分の1日分のデータの平均値と標準偏差を算出です。
結論から先に言うと、以下で1日目の平均値と標準偏差が算出できます。
result_mean = mean(data(:,1));
result_SD = std(data(:,1));
result_meanとresult_SDも自分でわかりやすい名前をつければ大丈夫です。
ここで行列について少しお話しします。
MATLAB上でデータを扱うときは行列を意識する必要があります。
図3の縦が行、横が列です。
例えば、図3でdata(31,2)は401になり、data(44,9)は650ということになります。

これを理解して次の説明を見てください。
result_mean = mean(data(:,1));でmeanは平均を算出する関数となります。
つまり、meanより後ろに指定した行列を平均してくださいという意味になります。
そして、data(:,1)はdataの1列目全てのデータを示しています。
data(:,1)はdata((1:50),1)と同じ意味になります。
例えば、30行から50行の平均値を算出したければ、data((30:50),1)になります。
今回は1日分すべてのデータですので、data((1:50),1)のように指定しなくてもdata(:,1)で行は全てのデータという意味になります。
そして、data(:,1)の1は1列目ということになります。2列目の平均値を算出したければdata(:,2)ということになります。
次に標準偏差です。
標準偏差を算出する関数はstdになりますので、meanをstdに変更するだけです。
つまり、result_SD = std(data(:,1));になります。
これらを実行すると図4のように1日目の平均値と標準偏差が算出されます。

今回はエクセルデータを読み込む、1日の平均値と標準偏差を算出する解説をしました。
次回は③for文を用いて9日分のデータの平均値と標準偏差を算出する、④ ③のグラフと作成する(標準偏差は省く)について説明していきたいと思います。
プログラミングを学びたい方は今であれば無料説明会もあるので参加してモチベーションを高めるもの1つです。
関連書籍
急にMATLAB/Simulinkを使うことになった時に読む本新品価格 ¥500から (2020/10/21 00:37時点) |