.matファイルをEEGLABでplotする

このサイトの 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
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
Tatsuya Onishi on 16 Sep 2021
返信ありがとうございます。
読み込みですが,EEGLABの File > Import data > Using EEGLAB functions and plugins > From ASCⅡ/float file or Matlab array の Data file/array を Matlab .mat fileに選択すると,開くだけならできました。その後のplotでエラーが出る感じですね。
ちなみに,EEGLABのデータを.set形式で保存するのはどのような方法で行うのでしょうか?
Atsushi Ueno
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 するために変更してはいけません。

Sign in to comment.

Answers (1)

takemoto
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
Atsushi Ueno on 15 Sep 2021
質問者様に確認していませんが、恐らくこのデータをEEGLABで開いて分析する事に意義があるのだと思います。(このツールの事を全く知りませんが、各種分析を行うツールのようです)。下記はEEGLABのサンプルデータを開いてプロットしたものです。脳波とか筋電図の分析?が目的のようです。
Tatsuya Onishi
Tatsuya Onishi on 16 Sep 2021
回答ありがとうございます。
無事波形図を出力することができました。今後EEGLABを用いて解析していくのですが,今は取り急ぎで波形図が出力したかったので,非常に参考になります。ありがとうございます。
Atsushi Ueno
Atsushi Ueno on 18 Sep 2021
おめでとうございます。plotできたのですね。
「取り急ぎplotだけ」であれば、本回答のように素のMATLABでもplot出来ますね。

Sign in to comment.

Products

Release

R2021a

Asked:

on 14 Sep 2021

Commented:

on 18 Sep 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!