首页 > 解决方案 > 在 for 循环 Matlab 中将 eeglab 保存到 mat 文件

问题描述

我想将设置文件保存在循环中的.mat文件中,保留原始文件名,只需将扩展名更改为.mat。

我尝试了在网上找到的不同编码方式,但我从来没有改变每个主题的文件名。下面的这段代码可以毫无问题地用于导出 .txt 文件中的设置文件。难道也没有办法以 .mat 导出吗?

for i = 1:length(files)
    filename = files(i).name;
    
    EEG = pop_loadset('filename', filename, 'filepath', directory_name);
    
    EEG = eeg_checkset( EEG );
    EEG = pop_export(EEG,fullfile(directory_name, [filename(1:end-4),'.mat']));
  
end 

当我运行此代码并想在 Matlab 中加载此文件时,它给了我错误:

load('AB24 task_ipol_500Hz_7min_MARA.mat')

Error using load
Unable to read MAT-file
C:\MTB862015\eeglab2019_1\All task\_2_min7_task\_6_min7_MARA\AB24 task_ipol_500Hz_7min_MARA.mat.
Not a binary MAT-file. Try load -ASCII to read as text.

非常感谢!!

标签: matlabfilesaveexporteeglab

解决方案


这段代码对我有用,也许它可以帮助别人:)


for i = 1:length(files)
    filename = files(i).name;
    
    EEG = pop_loadset('filename', filename, 'filepath', directory_name);
    
    EEG = eeg_checkset( EEG );
    s = filename(1:end-29); % Get the subjects code
    
    save([ num2str(s) 'task_ipol_500Hz_7min_MARA.mat'],'EEG')
end 

推荐阅读