-1

我有一个 1x200 结构的 .mat 文件(对应于 200 个实验会话)。在每个单元格中都有一个不同长度的矩阵(由 600-800 个 1x1 结构组成,对应于每个会话中的试验次数)。在这些结构(试验)中的每一个中,都有我希望单独存储的单个值。我该怎么办?

allData <1x200 结构>(所有会话)

allData(1,1) <1x1 结构>(1 个会话)

allData(1,1).trial <600-800x1 struct> (1 个会话中的所有试验,试验次数可变)

allData(1,1).trial(1,1).value (我要存储的)

非常感谢!

4

1 回答 1

0

我认为您正在寻找一个嵌套循环:

OUTPUT = [];

for I=1:size(allData,2)
   for J=1:size(allData(1,I).trial,1)
      OUTPUT(end+1) = allData(1,I).trial(J,1).value;
   end
end

附加说明:在 Matlab循环语句中
使用该函数时,检查(如果需要在调试模式下)是否选择了正确的维度很重要。这就是为什么,根据这里所讨论的数据格式,它首先说,因为它是一个结构,所以我们对第二维感兴趣;第二,因为它是一个结构。 由于可能难以先验确定的整体维度,将其初始化为空向量。这对于“计数器”的工作很重要,如果变量不知道何时首先调用命令,它将失败。此后,它将简单地附加到.sizeforsize(X,2)1x200size(Y,1)600x1
OUTPUT(end+1)valueOUTPUT

于 2013-05-13T16:18:52.387 回答