.matファイルをEEGLABでplotする
Show older comments
このサイトの 1. Four class motor imagery (001-2014) の Data にある A01E.mat をグラフ化したいのですが(グラフ化したいのは,struct 内にある X というフォルダです),plotの際エラーが発生してしまいます。
EEGLAB Wikiには一通り目を通し,ロードの方法を変えて試したのですが,うまくいきませんでした。
以下,エラー内容です。
EEGLAB error in function var() at line 164:
エラー:sum
データ型が無効です。最初の引数は数値または論理値でなければなりません。
よろしくおねがい致します。
3 Comments
Atsushi Ueno
on 15 Sep 2021
データ説明用のPDFに「General Data Format for biomedical signal (GDF)で保存されており」と書いてあり、元々.gdf形式だったファイルをEEGLABの為.mat形式に変換したものなのでしょう。
一方EEGLABのデータは.set形式で保存しますが、サンプルデータ(.setファイル)の中身はMATLAB 5.0 MAT-fileでした。そこでA01E.matをA01E.setに変えてEEGLABで開いてみましたが、予期しないフィールドが有るようでエラーが出ました。
質問者様はこのA01E.matファイルをEEGLABでどうやって開いたのでしょうか?(私はEEGLAB Wikiを殆ど読んでいません)
Tatsuya Onishi
on 16 Sep 2021
Atsushi Ueno
on 18 Sep 2021
>開くだけならできました。その後のplotでエラーが出る感じですね。
開けました!でもplotできませんね。EEGLABが想定しているデータの形ではないのでしょうね。
EEGLAB error in function var() at line 148:
エラー: sum
データ型が無効です。最初の引数は数値または論理値でなければなりません。
>ちなみに,EEGLABのデータを.set形式で保存するのはどのような方法で行うのでしょうか?
サンプルデータに.set形式のデータが有った事から「一方EEGLABのデータは.set形式で保存しますが、」と発言しました。実際にEEGLABの File > Import data > Save current dataset as をクリックすると、ファイルを.set形式で保存する様なダイアログボックスが出てきます。しかし、読み込んだ A01E.mat をA01E.setとして保存しようとしたところ、下記のエラーが出て保存できませんでした。
EEGLAB error in function pop_saveset() at line 224:
エラー: reshape
要素数を RESHAPE するために変更してはいけません。
Answers (1)
takemoto
on 15 Sep 2021
0 votes
MATLABの標準関数であれば、以下の手順でプロットできそうですが、いかがでしょうか?(一番目のセル配列を取り出しています)。
load A01E.mat
y = data{1};
out = y.X;
t = 0 : 1/y.fs : (length(out)-1)/y.fs;
plot(t, out), grid
3 Comments
Atsushi Ueno
on 15 Sep 2021
質問者様に確認していませんが、恐らくこのデータをEEGLABで開いて分析する事に意義があるのだと思います。(このツールの事を全く知りませんが、各種分析を行うツールのようです)。下記はEEGLABのサンプルデータを開いてプロットしたものです。脳波とか筋電図の分析?が目的のようです。

Tatsuya Onishi
on 16 Sep 2021
Atsushi Ueno
on 18 Sep 2021
おめでとうございます。plotできたのですね。
「取り急ぎplotだけ」であれば、本回答のように素のMATLABでもplot出来ますね。
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!