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

Posted

技术标签:

【中文标题】如何将数据结构中的字段保存到 Matlab 中的文件名字段?【英文标题】:How to save fields from a data structure to filename field in Matlab? 【发布时间】:2015-04-16 11:12:17 【问题描述】:

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

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

对于每个数据集,在呈现刺激之前有 2 秒的记录,在呈现刺激之后有 3 秒的记录。所以我实际上想将我的数据分成2个,数据点与“pre”相关联,数据点与“post”相关联。使用 for 循环很容易做到这一点,我已经做到了,现在每个数据集都有 2 个附加字段。

仅供参考

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】:

类似:

[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' );

【讨论】:

以上是关于如何将数据结构中的字段保存到 Matlab 中的文件名字段?的主要内容,如果未能解决你的问题,请参考以下文章

带有换行符的文本区域中的数据到数据库

什么是保存从图像分割的文本行的matlab代码

如何将直方图保存到matlab中的文件?

如何将matlab 中的数据写入现有的word 表格中?

文本区域中的换行符

如何将脚本中的结果保存在 Matlab 中的向量中?