如何在Matlab中将字段从数据结构保存到文件名字段?

时间:2015-04-16 11:12:18

标签: arrays matlab data-structures save eeglab

在Matlab中我有一个结构数组,如下所示。

我们基本上有许多数据集,每个数据集都有一个名称。对于每个数据集,存在一定数量的数据点,这些数据点是从大脑中的电活动记录的数据,来自刺激的呈现,在一定的秒数内。

对于每个数据集,在呈现刺激之前有2秒的记录,并且在呈现刺激之后有3秒的记录。所以我实际上想把我的数据切成2,数据点与“pre”相关联,数据点与“post”相关联。使用for循环这很简单,我已经完成了它,现在有2个与每个数据集相关的附加字段。

FYI

ALLEEG(data_set).data ----- > this field has the original unchopped data
ALLEEG(data_set).data_pre ----- > this field has the "pre" data
ALLEEG(data_set).data_post ---- > this field has the "post" data 
ALLEEG(data_set).filename ---- > this field has the filename  

现在我希望获取每个数据集的原始文件名,例如如果其中一个被称为

1234L01.set 

并且有一个标有data的字段,其中包含完整的数据记录(非切入“pre”和“post”),我想保存我创建的“pre”和“post”字段我有2个新的数据集

1234L01_pre.set and 1234L01_post.set 

并且每个中的data字段分别是“pre”和“post”,并且维护与数据集关联的任何其他字段。

我对如何做有点困惑,因为我不明白如何获取原始文件名并修改它,我有很多数据集,所以我不想手工完成。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

类似的东西:

[p,f,e] = fileparts ( ALLEEG(data_set).filename );
newFilename = sprintf ( '%s_pre.%s', f, e )
pre = ALLEEG(data_set).pre;
save ( newFilename, 'pre' );

newFilename = sprintf ( '%s_post.%s', f, e )
post = ALLEEG(data_set).post;
save ( newFilename, 'post' );