.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 commentaires

Atsushi Ueno
Atsushi Ueno le 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 le 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 le 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 するために変更してはいけません。

Connectez-vous pour commenter.

Réponses (1)

takemoto
takemoto le 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 commentaires

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!